Этапы, запускаемые вручную в конвейерах YAML Azure Devops

Я хотел бы воссоздать конвейер, который выглядит примерно так в YAML.

Я успешно воссоздал трубопровод первой линии (А). СочетаниеdependsOn, environmentName, и одобрение среды обрабатывает это. Однако, похоже, нет способа создать конвейеры B и C в YAML.

Я видел несколько похожих вопросов, но большинство из них были не совсем тем, что я искал, или были очень старыми, и у них не было решения. Я подозреваю, что сейчас это невозможно, но хотел спросить, чтобы убедиться.

3 ответа

Поставьте одобрение перед первым окружением. Он не сработает, пока не будет одобрен. Это настолько близко, насколько вы собираетесь получить прямо сейчас.

Вы можете управлять им по параметрам, например:

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.

В настоящее время функция указания этапа для запуска предоставляется в yaml, но это применимо только к запускаемым вручную конвейерам и не может развернуть этап вручную в любое время, как в pipleine выпуска.

Согласно вашей блок-схеме, вы хотите, чтобы ваш конвейер начинался с CI и чтобы независимость ручных этапов не влияла на работу конвейера. Разделение этапов на несколько конвейеров yaml не должно быть вашим желанием, поэтому вы можете следить за голосом пользователя и голосовать за этот билет, чтобы с нетерпением ждать выпуска новых функций.