当前位置: 首页 > 知识库问答 >
问题:

GitHub操作无效工作流文件错误

孟成文
2023-03-14

我开始使用GitHub Actions,并且能够为Elixir设置CI管道,操作构建和测试没有任何问题。我还想使用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

以下是错误以了解更多详细信息。

共有1个答案

丘飞
2023-03-14

您定义步骤的-太多。作业中的每一步应该只有一个-

《actions/heroku自述》尚未更新,以显示yaml工作流的示例。但有一个打开的pull请求来更新它。下面是该pull请求的示例,可能会对您有所帮助。

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
 类似资料:
  • 我有以下GitHub操作的文件(删除了一些代码,以便更容易理解这个问题): 我经历了以下步骤: 在分支上进行一些提交,并推动这些更改 我期望GitHub Actions在第2项之后运行测试和部署阶段作业。但是相反,它只是再次运行,而没有运行。 如上所述,即使在推送到之后,它仍然在分支上运行,而不是在分支上运行。我有点假设这可能是由于一些奇怪的行为与快进合并。但是GitHub显然意识到我推动了,因为

  • 我正在为项目存储库设置Github操作。 工作流程包括以下步骤: 构建docker形象 将图像推送到容器注册表中 推出Kubernetes部署 然而,我有两种不同的Kubernetes部署:一种用于开发,另一种用于生产。因此,我还有两个Github操作工作流。 每次推送提交时,都会触发Github开发操作工作流: 但我不希望在我的生产工作流程中出现这种情况。我需要一个手动触发器,比如“发送到生产”

  • 设置容器要使用的卷数组。可以使用卷在服务或作业中的其他步骤之间共享数据。可以在主机上指定命名Docker卷、匿名Docker卷或绑定挂载。 工作流程 第一个作业(build)有一个build目录,但当第二个作业(deploy)运行时,它没有,只包含源代码。 这个项目是一个mono repo,我试图部署的代码位于路径,因此所有标志。

  • 我有一个Github repo项目,使用Github操作和一个docker文件来构建SpringBoot Java项目 我想从Github repo下载来自Github repo的定制工件包,并能够将工件上传到其中。 所以我按照配置Apache Maven用于GitHub包的链接,将该部分添加到settings.xml文件中: 为了从dockerfile构建中发布包,我在pom.xml中添加了以下

  • 我正试图通过遵循本教程,使用GitHub操作构建docker映像并将其推送到Amazon ECR 我正在尝试为此repo设置GitHub操作,因此我在<代码>中创建了一个新的工作流。github/workflows目录。 DockerFile已成功创建并生成。 现在,在创建

  • 我最近正在努力将Oracle从11g升级到19c,我将笔记本电脑从Win7升级到Win10,最后成功安装了Oracle,然后我创建了表空间和表,现在我可以从sqlplus/plsql访问它们。 我们有一个由asp.net web表单开发的旧系统,它使用system.Data.OracleClient,升级到Win10后,它不工作,所以我使用Oracle.ManagedDataAccess.Clie