Запретить развертывание, если в yaml для условия развертывания на предыдущем этапе установлено значение false - PullRequest
0 голосов
/ 06 апреля 2020

Я создал конвейер сборки / выпуска, используя yaml:

enter image description here

Здесь первый этап - «Сборка». Как только сборка завершена и завершена успешно, следующим этапом является «развертывание на ua». Если развертывание в ua завершено и выполнено успешно, следующим этапом является «развертывание в prod».

Как показано здесь, условие «развертывание в ua» вернуло «false». Как мне пропустить развертывание в prod, если условие «развертывание в ua» ложно.

enter image description here

1 Ответ

1 голос
/ 07 апреля 2020

Я воспроизвел приведенный выше сценарий, когда я установил условия для задания на этапе deployment to ua. Задание «Развернуть Ip-ресурсы» было бы пропущено, поскольку условие было ложным. Но этап deployment to ua был оценен успешно. И следующий этап будет продолжен.

Способ исправить это - установить условия и зависимости на уровне этапов, а не на уровне заданий. Например, ниже:

Этап Выпуск B зависит от Выпуска A и будет пропущен, если этап A не выполнен (/ пропущен) Стадия Выпуск A будет пропущен (вместо задания B пропускается, если условие задано на уровне задания), если условие ложно.

stages: 
- stage: Build
  jobs:
  - job: A
    steps:
      - powershell: echo "Stage A"

- stage: Release_A
  dependsOn: Build
  condition: and(succeeded('Build'), eq(variables['build.sourceBranch'], 'refs/heads/master'))
  jobs:
  - job: B
    steps:
      - powershell: echo "Stage B"

- stage: Release_B
  dependsOn: Release_A
  condition: succeeded('Release_A')
  jobs:
  - job: C
    steps:
      - powershell: echo "Stage C"

Однако, если вы хотите установить условия на уровень задания. Вам нужно добавить еще одно задание на этапе deployment to ua, чтобы преднамеренно завершить работу самого себя (так, чтобы этап был оценен как неудачный), когда условие ложно.

Надеюсь, что выше помогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...