在 GitHub Actions 中,我已经用 YAML 定义了管道。
我有一个条件作业,后面还有另一个条件作业,我想在条件作业之后执行该作业。但如果作业未执行,则立即执行。
如果我使用:
name: Test conditionals
on:
workflow_dispatch:
env:
DEPLOY_NONPROD_ENV: 'false'
jobs:
conditionalJob:
if: ${{ env.DEPLOY_NONPROD_ENV == 'true' }}
runs-on: 'ubuntu-latest'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Echo message
run: 'echo "Condition evaluated to true"'
dependantJob:
needs: [conditionalJob]
runs-on: 'ubuntu-latest'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Echo message
run: 'echo "Running dependantJob"'
如果conditionalJob
跳过,则dependantJob
也会跳过。
如何使其工作,以便dependantJob
在被跳过时立即执行conditionalJob
,并在运行时等待它?
实际上评论问题的答案不是 100% 好的,在这种情况下你需要检查
result
第一个作业,如果它通过或跳过,但也需要添加!cancelled()
,这应该有效:您可以替换
!cancelled()
,always()
但即使您取消它,工作流程仍将继续运行!