Azure Devops YAML管道中的手动触发的阶段

时间:2020-07-01 16:08:15

标签: azure azure-devops azure-pipelines azure-pipelines-release-pipeline azure-yaml-pipelines

我想重新创建一个在YAML中看起来像这样的管道。

Release Pipeline

我已经成功地重新创建了第一行(A)管道。 dependsOnenvironmentName和环境批准的组合可以处理此问题。 但是,似乎没有办法在YAML中创建B和C管道。

我见过几个similar questions,但大多数都不是我要找的东西,或者很老很没办法。我怀疑这暂时不可能,但想问一下以确保。

3 个答案:

答案 0 :(得分:0)

在第一个环境前放置批准。除非获得批准,否则不会触发。距离您马上要完成。

答案 1 :(得分:0)

恐怕目前无法在YAML管道中实现手动触发阶段,如发布管道的UI。

目前,yaml中提供了指定要运行的阶段的功能,但这仅适用于手动触发的管道,无法像发布pipleine一样随时部署手动阶段。

根据流程图,您希望管道以CI开头,并保持手动阶段的独立性不会影响管道的运行。将阶段划分为多个Yaml管道不应该是您想要的,因此您可以按照uservoice进行投票,以票证该票以期待新功能的发布。

答案 2 :(得分:0)

您可以根据参数控制它,例如:

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,您可以在排队管道时设置值(选中或取消选中)。

enter image description here

另一方面,您还可以在运行管道Skipping stages in a YAML pipeline

时跳过阶段