Помимо настройки двух конвейеров выпуска, если вы хотите использовать запланированный триггер только для одной стадии, я боюсь, что нет такого готового способа достичь этого, запланированный триггер предназначен только для всего конвейера.
В качестве обходного пути вы можете добавить пользовательское условие для задания MONITOR
stage.
Например, в yaml:
- stage: MONITOR
jobs:
- job:
condition: and(always(), eq(variables['Release.Reason'], 'Schedule'))
steps:
В пользовательском интерфейсе вы можно установить это в Run this job
агентского задания:
В этом случае этап выполняется только тогда, когда разблокирование инициируется по запланированному триггеру. Если выпуск инициирован по другим причинам, этап MONITOR
будет пропущен.
Ограничение этого обходного пути состоит в том, что, когда ваш конвейер запускается по запланированному триггеру, также выполняются два других этапа.
Или напишите скрипт с задачей powershell
(на этапах INT / PROD), чтобы определить, является ли Release.Reason
Schedule
. Если да, пропустите текущий этап.
Чтобы получить последнюю версию артефакта PROD
и определить состояние развертывания PROD
, вы можете обратиться к двум ответам выше.