bru*_*a42 12 continuous-integration github continuous-deployment github-actions
我试图在成功运行不同的操作后触发 Github 操作来运行。
这两个工作流程是:
单元测试操作(首先运行,并且应该触发下面的“后续测试”操作
name: unit-tests
on:
push:
branches:
- '**'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: "3.1.x"
- name: Test
run: dotnet test src/XXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
遵循测试操作(这只是一个测试操作)
name: Test action triggered by previous action success
on:
workflow_run:
workflows:
- unit-tests
types:
- completed
jobs:
test-job:
name: Test Step
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.workflow_run.head_branch }}
- run: echo "The follow on works!!"
Run Code Online (Sandbox Code Playgroud)
问题是,当这是在功能分支而不是默认分支上触发时(因为我希望操作运行所有分支),它不起作用?
有任何想法吗?
Gui*_*urd 20
正如评论中所讨论的:
首先:分支上必须有两个工作流程,并且首先将分支合并到默认分支中,然后才能正常工作。
第二:如果之前的工作流程成功,则可以if: ${{ github.event.workflow_run.conclusion == 'success' }}仅运行作业。
例子:
on:
workflow_run:
workflows: ["Other Workflow Name"]
types: [completed] #requested
jobs:
on-success:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- run: echo "First workflow was a success"
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- run: echo "First workflow was a failure"
Run Code Online (Sandbox Code Playgroud)