首页 > 解决方案 > 默认取消选择阶段

问题描述

在 Azure Devops 多级 YAML 管道中,我们有多个环境。在正常运行的阶段,我们仅在 QA 中进行构建和部署,因此我们需要手动取消选择每个阶段。默认情况下所有阶段都被选中是否有可能完全相反,默认情况下所有阶段都被取消选择???

选择阶段

trigger: none
pr: none
stages:
- stage: 'Build'
  jobs:
  - deployment: 'Build'
    pool:
      name: Default
# testing
    environment: INT
    strategy:
      runOnce:
        deploy:
          steps:
          - checkout: none
          - powershell: |
              echo "Hello Testing"
              Start-Sleep -Seconds 10
- stage: 'Sandbox'
  jobs:
  - job: 'Sandbox'
    pool:
      name: Default
    steps:
    - checkout: none
# testing
    - powershell: |
        echo "Hello Testing"
- stage: 'Test'
  jobs:
  - job: 'DEV'
    pool:
      name: Default
    steps:
    - checkout: none
    - powershell: |
        echo "Hello Testing"
- stage: 'QA'
  dependsOn: ['Test','Test1','Test2']
  jobs:
  - job: 'QA'
    pool:
      name: Default
    steps:
    - checkout: none
      # Testing
    - powershell: |
        echo "Hello Testing"

标签: azure-devopsyaml

解决方案


恐怕没有可以满足您需求的 UI(如运行阶段)方法。

您可以尝试将参数添加到您的 Yaml 示例。

这是一个例子:

trigger: none
pr: none

parameters:
- name: stageTest
  displayName: Run Stage test
  type: boolean
  default: false
- name: stageBuild
  displayName: Run Stage build
  type: boolean
  default: false

stages:
- ${{ if eq(parameters.stageBuild, true) }}: 
  - stage: 'Build'
    jobs:
    - deployment: 'Build'
      pool:
        name: Default
      environment: INT
      strategy:
        runOnce:
          deploy:
            steps:
            - checkout: none
            - powershell: |
                echo "Hello Testing"
                Start-Sleep -Seconds 10

- ${{ if eq(parameters.stageTest, true) }}: 
  - stage: Test
    dependsOn: []
    jobs:
    - job: B1
      steps:
      - script: echo "B1"

这些参数用于确定是否运行这些阶段。您可以在阶段前添加表达式,以检查参数值是否满足表达式。

默认值为假。这意味着该阶段默认不会运行。

结果如下:

在此处输入图像描述

您可以通过单击选择框来选择需要运行的阶段。

更新

解决方法有一些限制。当 select 阶段有依赖时,需要选择所有依赖的阶段来运行。

例如:

  - stage: 'QA'
    dependsOn: ['Test','Test1','Test2']

在此处输入图像描述

另一方面,我创建了一个建议票来报告此功能请求。这是建议票链接:Pipeline Deselect Stages By Default您可以在其中投票并添加评论。


推荐阅读