在 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"
Run Code Online (Sandbox Code Playgroud)
恐怕没有 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"
Run Code Online (Sandbox Code Playgroud)
这些参数用于确定是否运行这些阶段。您可以在阶段之前添加表达式来检查参数值是否满足表达式。
默认值为 false。这意味着该阶段默认情况下不会运行。
结果如下:
您可以通过单击选择框来选择需要运行的阶段。
更新
解决方法有一些局限性。当select stage有依赖时,需要选择所有依赖的stage来运行。
例如:
- stage: 'QA'
dependsOn: ['Test','Test1','Test2']
Run Code Online (Sandbox Code Playgroud)
另一方面,我创建了一个建议票来报告此功能请求。这是建议票链接:Pipeline Deselect Stages By Default您可以在其中投票并添加评论。
| 归档时间: |
|
| 查看次数: |
743 次 |
| 最近记录: |