可以通过使用“with”表达式来解决这个问题,该表达式在运行时计算条件。下面是一个示例代码,“env isProd”表示环境为生产的条件:
steps:
- script: echo "Deploying to production"
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
&& contains('$(env)', 'isProd')
&& eq(variables['Build.Reason'], 'IndividualCI')
使用“with”表达式后,条件将计算传递给另一个任务:
- job: deploy_prod
condition: and(succeeded(), eq(variables['IsProd'], 'true'))
steps:
- script: echo "Deploying to production"