我有一个基于模板的Azure管道。管道的阶段之一是:
- template: oo-templates/d-template.yaml@RepoTemplates
parameters:
stage: 'Test_Deployment'
我想从代码中暂时禁用它。我尝试添加这样的条件:
- template: oo-templates/d-template.yaml@RepoTemplates
parameters:
stage: 'Test_Deployment'
condition: false
但并没有带来任何效果。 是否有任何其他标志或任何其他方式来“关闭”给定阶段?最好以这种方式在运行管道时默认在阶段列表中“禁用”。
编译管道时,将在“Stages to run”部分中选择所有阶段。无法取消选择特定阶段。
如果您想控制默认运行哪些阶段,请使用布尔参数。
考虑一个具有 2 个阶段的简单管道 -
Build
和 Deploy
:
如果您不希望默认运行
Deploy
阶段,您可以定义一个名为 deployApplication
的布尔参数,并将其设置为 false
:
# my-pipeline.yaml
parameters:
- name: deployApplication
displayName: 'Deploy Application'
type: boolean
default: false # <-------------- Don't deploy by default
stages:
- template: /pipelines/stages/build-deploy-stages.yaml
parameters:
deployApplication: ${{ parameters.deployApplication }}
阶段模板:
parameters:
- name: deployApplication
displayName: 'Deploy Application'
type: boolean
stages:
- stage: Build
displayName: Build
dependsOn: []
jobs:
- job: job_Build
steps:
- checkout: none
- script: echo Build
- ${{ if parameters.deployApplication }}: # <--------- generate stage based on parameter
- stage: Deploy
displayName: Deploy
dependsOn: Build
jobs:
- job: job_Deploy
steps:
- checkout: none
- script: echo Deploy
对新管道进行排队 - 默认值:
Deploy
阶段不会生成,因此它不会在“要运行的阶段”中可见:
选择“部署应用程序”:
Deploy
阶段现在在“要运行的阶段”中可见: