如何正确依赖有条件工作

问题描述 投票:0回答:1

在 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
时立即执行,并在运行时等待它?

github github-actions
1个回答
0
投票

实际上评论问题中的答案不是%100好,在这种情况下你需要检查第一个作业的

result
,如果它通过或跳过,但还需要添加
!cancelled()
,这应该可以工作:

if: (needs.conditionalJob.result == 'skipped' || needs.conditionalJob.result == 'success') && !cancelled()

您可以将

!cancelled()
替换为
always()
,但即使您取消它,工作流程也会继续运行!

© www.soinside.com 2019 - 2024. All rights reserved.