Azure DevOps 管道:计划的触发器根本不起作用

问题描述 投票:0回答:1

我正在努力让计划的触发器发挥作用 - 当您在打开管道时检查下拉列表中的计划触发器时,它不会显示任何计划,即使您按“同步”从 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 计划进行编码,推送到主分支并期望看到计划的触发器,但没有显示,因此除非手动运行,否则它根本不会启动。

azure-devops azure-pipelines pipeline azure-triggers
1个回答
0
投票

我已经测试了 YAML 示例,并且可以重现相同的问题。

从 YAML 计划触发器设置中,计划触发器将每周执行一次,并且

always
关键字值为 true。即使没有代码更改,它也会强制管道运行,并且会显示触发器运行列表。

问题的原因可能是 YAML 文件(包含计划触发器)并不存在于计划触发器中需要使用的所有分支中。

要解决此问题,您需要将主 yaml 文件复制到计划触发器中需要使用的所有分支(例如

deployment/compute/*
main/compute/*
)。

注意: 您需要在所有分支中保留具有 SAME 文件名的 yaml 文件。

例如:

分支1:

enter image description here

分支2:

enter image description here

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.