Github Action错误每一步都必须定义`uses`或`run`键

Kal*_*rin 5 github github-actions

我无法使这个工作流程正常工作,我总是收到此错误every step must define a "uses" or "run" key,但是查看我的脚本,我没有看到任何问题,有人可以帮我解决这个问题吗?这看起来不像-平常那​​样是一个问题。

# This is a basic workflow to help you get started with Actions

name: Build Digital Ocean Image

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events but only for the "master" branch
  push:
    branches:
      - '*'
      - '*/*'
      - '**'
      - '!master'
  pull_request:
    branches: [ "master" ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  packages:
    runs-on: ubuntu-latest

    steps:
      - name: Install packages
        run: |
          apt-get install curl -y
          curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
          sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
          sudo apt-get update && sudo apt-get install packer
          apt-get install ansible -y
  
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    # runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - name: Checkout
        uses: actions/checkout@v3

      # Runs a single command using the runners shell
      - name: Packer init
        env:
          DIGITALOCEAN_TOKEN=${{ secrets.DIGITALOCEAN_TOKEN }}
        run: packer init
        working-directory: /home/runner/work/packer-do-custom-images/demo

      # Runs a set of commands using the runners shell
      - name: Packer build
        run: packer build .
        working-directory: /home/runner/work/packer-do-custom-images/demo
Run Code Online (Sandbox Code Playgroud)

Mat*_*teo 8

running -on指令丢失(已注释!),只需在名称后面添加/取消注释即可,例如:

  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:

Run Code Online (Sandbox Code Playgroud)

解决这个问题。

我建议使用actionlint工具来发现这样的错误,例如:

> actionlint .github/workflows/test.yaml
.github/workflows/test.yaml:35:3: "runs-on" section is missing in job "build" [syntax-check]
   |
35 |   build:
   |   ^~~~~~
Run Code Online (Sandbox Code Playgroud)

更新:

作为旁注,环境变量也是问题:您应该使用:而不是=像:

  - name: Packer init
    env:
      DIGITALOCEAN_TOKEN: ${{ secrets.DIGITALOCEAN_TOKEN }}
Run Code Online (Sandbox Code Playgroud)