我对阶段条件有疑问。使用https://stackoverflow.com/a/78262966/28447778帖子作为参考,我想实现这样的场景,当有人在管道运行中选中“在生产模式下运行”时,它应该直接从“构建”阶段运行到“PRD”阶段,否则当有人没有选中“在生产模式下运行”时,它应该经历所有阶段。
在我当前的代码中,行为是当我检查“在生产模式下运行”时它可以正常工作:
但是当我不选中它时,它直接运行到 DEV,但是它应该运行 Build -> DEV -> PRD。
我的错误在哪里?
parameters:
- name: runOnProductionMode
displayName: 'Run on production mode'
type: boolean
default: false
stages:
- stage: Build
displayName: 'Build'
jobs:
- template: templates/manual.yml@Pipelines
- ${{ if not(parameters.runOnProductionMode) }}:
- stage: DEV
dependsOn: GateApproval
condition: succeeded()
displayName: 'DEV'
pool:
name: ${{ variables.dev }}
jobs:
- deployment: DEV
# Rest of the code
- ${{ if parameters.runOnProductionMode }}:
- stage: PRD
displayName: 'PRD'
pool:
name: ${{ variables.prd }}
jobs:
- deployment: PRD
# Rest of the code
如果
PROD
阶段应该一直运行那么您应该删除${{ if ... }}
该阶段的条件。而不是:
做: