如何不执行使用模板定义的特定Azure Pipeline阶段

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

我有一个基于模板的Azure管道。管道的阶段之一是:

  - template: oo-templates/d-template.yaml@RepoTemplates
    parameters:
      stage: 'Test_Deployment' 

当我从门户运行管道时,它是可见的: enter image description here

我想从代码中暂时禁用它。我尝试添加这样的条件:

  - template: oo-templates/d-template.yaml@RepoTemplates
    parameters:
      stage: 'Test_Deployment' 
      condition: false

但并没有带来任何效果。 是否有任何其他标志或任何其他方式来“关闭”给定阶段?最好以这种方式在运行管道时默认在阶段列表中“禁用”。

azure-devops azure-pipelines pipeline azure-pipelines-yaml
1个回答
0
投票

编译管道时,将在“Stages to run”部分中选择所有阶段。无法取消选择特定阶段。

如果您想控制默认运行哪些阶段,请使用布尔参数

示例

考虑一个具有 2 个阶段的简单管道 -

Build
Deploy
:

Pipeline stages

如果您不希望默认运行

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

对新管道进行排队 - 默认值:

New pipeline - default

Deploy
阶段不会生成,因此它不会在“要运行的阶段”中可见:

Stages to run - default

选择“部署应用程序”:

New pipeline - boolean parameter selected

Deploy
阶段现在在“要运行的阶段”中可见:

Stages to run - boolean parameter selected

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.