我想在 YAML 中重新创建一个看起来像这样的管道。
我已经成功地重新创建了第一行 (A) 管道。dependsOn
、environmentName
和 环境认证的组合可以解决这个问题。但是,似乎没有办法在 YAML 中创建 B 和 C 管道。
我见过几个类似的问题,但大多数都不是我想要的,或者很老没有解决方案。我怀疑这现在不可能,但想问一下。
我想在 YAML 中重新创建一个看起来像这样的管道。
我已经成功地重新创建了第一行 (A) 管道。dependsOn
、environmentName
和 环境认证的组合可以解决这个问题。但是,似乎没有办法在 YAML 中创建 B 和 C 管道。
我见过几个类似的问题,但大多数都不是我想要的,或者很老没有解决方案。我怀疑这现在不可能,但想问一下。
您可以根据参数控制它,例如:
parameters:
- name: stageTest
displayName: Run Stage test
type: boolean
default: false
trigger:
- none
variables: # pipeline-level
system.debug: true
stages:
- stage: Build
jobs:
- job: Build
steps:
- script: echo "hello to my first Build"
- stage: Test
dependsOn:
- Build
jobs:
- job: Test
steps:
- script: echo "test"
- ${{ if eq(parameters.stageTest, true) }}:
- stage: B1
dependsOn: []
jobs:
- job: B1
steps:
- script: echo "B1"
- stage: B2
dependsOn:
- B1
jobs:
- job: B2
steps:
- script: echo "B2"
参数是stageTest,您可以在排队管道时设置值(选中或取消选中)。
另一方面,您也可以在运行管道时跳过阶段:在 YAML 管道中跳过阶段
在第一个环境前面放一个批准。在获得批准之前不会触发。这与您现在将要获得的一样接近。
恐怕目前无法在YAML管道中实现像发布管道的UI这样的手动触发阶段。
目前在yaml中提供了指定运行stage的功能,但是这只适用于手动触发的流水线,不能像发布流水线那样随时部署手动stage。
根据你的流程图,你希望你的流水线从 CI 开始,保持手动阶段的独立性,不会影响流水线的运行。将stage拆分成多个yaml管道应该不是你想要的,所以你可以关注uservoice,投票给这张票,期待新功能的发布。