如何按特定顺序运行 GitHub actions .yaml 文件?

Yas*_*ino 3 continuous-integration yaml action github github-actions

我有两个用于 GitHub 操作的 .yaml 文件。我需要仅在第一个文件之后执行第二个文件。如果作业都在​​其他文件中,我该如何实现这一点?

小智 6

有一个名为“重用工作流程”的功能可以使用。

例子:

  • workflow1.yaml
name: Job1
on:
  workflow_call:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Run a one-line script
        run: echo Job1 Executed!
Run Code Online (Sandbox Code Playgroud)
  • workflow2.yaml
name: Job2
on:
  workflow_call:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Run a one-line script
        run: echo Job2 Executed!
Run Code Online (Sandbox Code Playgroud)
  • demo1.yaml(调用工作流程)
name: Demo1
on:
  push:
    branches: [ "main" ]
  workflow_dispatch:
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
  call-workflow1:
    uses: ./.github/workflows/workflow1.yaml
  call-workflow2:
    if: ${{ always() }} #This will make your workflow2 executed even if workflow1 fails, remove this, if you want to run this only on success of workflow1
    needs: call-workflow1
    uses: ./.github/workflows/workflow2.yaml
Run Code Online (Sandbox Code Playgroud)
  • 样本

动作示例

参考 -