Azure Release Pipeline问题:Stage A失败后Stage B跳步,求正确条件表达式
Azure Release Pipeline:Stage A失败时确保Stage B执行的正确条件表达式
Azure Pipelines默认行为是:如果前置Stage(比如Stage A)执行失败,依赖它的后续Stage(Stage B)会被自动跳过——因为默认执行条件基于前置Stage成功。要实现Stage A失败后Stage B必须运行的需求,你需要手动指定Stage B的执行条件。
两种场景的条件表达式
1. 仅当Stage A失败时运行Stage B
使用failed('StageA')作为条件,仅在Stage A执行失败时触发Stage B:
stages: - stage: StageA jobs: - job: JobA steps: - script: exit 1 # 模拟Stage A失败 - stage: StageB dependsOn: StageA condition: failed('StageA') jobs: - job: JobB steps: - script: echo "Stage B is running because Stage A failed"
2. 无论Stage A成功/失败都运行Stage B
如果需要Stage B在Stage A无论成功还是失败时都执行,使用succeededOrFailed('StageA'):
stages: - stage: StageA jobs: - job: JobA steps: - script: echo "Running Stage A" - stage: StageB dependsOn: StageA condition: succeededOrFailed('StageA') jobs: - job: JobB steps: - script: echo "Stage B runs regardless of Stage A's result"
经典编辑器(非YAML)设置方式
如果你使用经典发布管道编辑器:
- 进入Stage B的配置页面
- 找到「执行条件」选项,选择「自定义条件」
- 在输入框中填入对应的表达式:
failed('StageA')或succeededOrFailed('StageA')
内容的提问来源于stack exchange,提问作者Nikhil BS
相关产品推荐
相关产品推荐

