Я изо всех сил пытаюсь заставить работать запланированные триггеры: когда вы проверяете «Запланированные триггеры» в раскрывающемся списке при открытии конвейера, расписания не отображаются, даже если вы нажимаете «Синхронизировать», чтобы прочитать его из файла yaml. В yaml основного конвейера есть расписания, и он использует шаблон, состоящий из 6 этапов, в котором параметры передаются для запуска всего, что было настроено, с условиями, определяющими, какое имя расписания сработало. К сожалению, запланированных запусков нет. Есть идеи?
основной файл yaml:
trigger: none
pr: none
schedules:
- cron: '0 0 * * Tue-Sat'
displayName: VM shutdown
branches:
include:
- /deployment/compute/*
- /main/compute/*
always: true
- cron: '30 7 * * Mon-Fri'
displayName: VM startup
branches:
include:
- /deployment/compute/*
- /main/compute/*
always: true
...
stages:
- template: ../../pipelines/modules/<whatever>.yml
parameters:
stageCondition: 'BPC shutdown'
stageName: 'statusVM'
stageDisplayName: 'Status VM'
stageDependsOn: '<previous stage name'
...
**template yaml file:**
stages:
- stage: ${{ parameters.stageName }}
condition: eq(variables['Build.CronSchedule.DisplayName'], '${{ parameters.stageCondition }}')
displayName: '${{ parameters.stageDisplayName }}'
dependsOn: '${{ parameters.stageDependsOn }}'
jobs:
....
Написал расписания cron, отправил в основную ветку и ожидал увидеть запланированные триггеры, но ничего не появилось, поэтому он вообще не запускается, если не запустить его вручную.
Я протестировал образец YAML и могу воспроизвести ту же проблему.
В настройках триггера расписания YAML триггер расписания будет выполняться каждую неделю, а значение ключевого слова always
истинно. Он заставит конвейер запускаться даже при отсутствии изменений кода и отобразит список триггерных запусков.
Причиной проблемы может быть то, что файл YAML (содержит триггер расписания) не существует во всех ветвях, которые необходимо использовать в триггере расписания.
Чтобы решить эту проблему, вам необходимо скопировать основной файл yaml во все ветки, которые необходимо использовать в триггере расписания (например, deployment/compute/*
,main/compute/*
).
Примечание. Вам необходимо сохранить файл yaml с ОДНИМ именем файла во всех ветках.
Например:
Филиал1:
Филиал2:
Результат: