我开始使用GitHub Actions,并且能够为Elixir设置CI管道,该Actions可以构建和测试,没有任何问题。我还想使用heroku动作来部署应用程序,所以我继续并添加了GitHub中可用的应用程序,但是这样做之后,我得到了以下错误:
无效的工作流文件 每个步骤都必须定义一个使用或运行键
这是添加heroku动作之前我的工作流程的样子:
name: Elixir CI
on: push
jobs:
build:
runs-on: ubuntu-latest
container:
image: elixir:1.9.1-slim
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
run: |
mix local.rebar --force
mix local.hex --force
mix deps.get
test:
runs-on: ubuntu-latest
services:
db:
image: postgres:11
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v1.0.0
- uses: actions/setup-elixir@v1.0.0
with:
otp-version: 22.x
elixir-version: 1.9.x
- run: mix deps.get
- run: mix test
这就是我添加heroku动作的方式
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/heroku@1.0.0
- name: GitHub Action for Heroku
- run: |
heroku login
env:
CI: true
Here是错误,以获取更多详细信息。
答案 0 :(得分:1)
您要定义步骤的地方-
太多。作业中的每个步骤应该只有一个-
。
actions/heroku
的自述文件尚未更新,无法显示yaml工作流程的示例。虽然有open pull request要对其进行更新。以下是该请求的示例,可能会对您有所帮助。
on: push
name: Deploy to Heroku
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: login
uses: actions/heroku@master
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
with:
args: container:login
- name: push
uses: actions/heroku@master
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
with:
args: container:push -a calm-fortress-1234 web
- name: release
uses: actions/heroku@master
env:
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
with:
args: container:release -a calm-fortress-1234 web