- 使用变量控制阶段的跳过和执行
在 YAML 文件中定义一个变量,例如:
variables:
runStageA: true
runStageB: false
在 stage 中使用 condition 条件判断控制阶段的跳过和执行,例如:
stages:
-
stage: A
condition: eq(variables['runStageA'], true)
steps:
-
stage: B
condition: eq(variables['runStageB'], true)
steps:
这样,通过修改变量的值来控制阶段的跳过和执行。
- 使用 regular expression 筛选阶段
可以使用名称模板和 regular expression 筛选阶段,例如:
- stage: A
displayName: 'Build $(Build.Platform) $(Build.Configuration)'
condition: |
and(succeeded(),
or(
eq(variables['Build.SourceBranch'], 'refs/heads/main'),
eq(variables['Build.SourceBranch'], 'refs/heads/develop')
),
or(
eq(stageDependencies.BuildArtifact.A.outputs['BuildPlatform'], 'win-x86-Release'),
eq(stageDependencies.BuildArtifact.A.outputs['BuildPlatform'], 'linux-x64-Debug')
)
)
...
其中 eq(stageDependencies.BuildArtifact.A.outputs['BuildPlatform'], 'win-x86-Release') 中的 'BuildPlatform' 是 artifact 中输出变量的名称。
- 使用阶段依赖引用
可以在 YAML 文件中定义一个阶段依赖:
- stage: Deploy
dependsOn: Build
这样,在后续的阶段中可以使用 dependsOn 引用前面的阶段:
- stage: Test
dependsOn: Deploy
condition: eq(dependencies.Deploy.result, 'Succeeded')
...
这样可以实现阶段的有序执行。