Конвейер Azure Devops: запланированные триггеры вообще не работают

Я изо всех сил пытаюсь заставить работать запланированные триггеры: когда вы проверяете «Запланированные триггеры» в раскрывающемся списке при открытии конвейера, расписания не отображаются, даже если вы нажимаете «Синхронизировать», чтобы прочитать его из файла 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, отправил в основную ветку и ожидал увидеть запланированные триггеры, но ничего не появилось, поэтому он вообще не запускается, если не запустить его вручную.


150
1

Ответ:

Решено

Я протестировал образец YAML и могу воспроизвести ту же проблему.

В настройках триггера расписания YAML триггер расписания будет выполняться каждую неделю, а значение ключевого слова always истинно. Он заставит конвейер запускаться даже при отсутствии изменений кода и отобразит список триггерных запусков.

Причиной проблемы может быть то, что файл YAML (содержит триггер расписания) не существует во всех ветвях, которые необходимо использовать в триггере расписания.

Чтобы решить эту проблему, вам необходимо скопировать основной файл yaml во все ветки, которые необходимо использовать в триггере расписания (например, deployment/compute/*,main/compute/*).

Примечание. Вам необходимо сохранить файл yaml с ОДНИМ именем файла во всех ветках.

Например:

Филиал1:

Филиал2:

Результат: