Azure 管道跳过计划作业

Azure pipeline skips scheduled job

我有一个非常简单的 管道,它有一个 1 个阶段1 个作业 打印 Hello World.

我希望阶段仅根据时间表(而不是在我推送时)触发。

schedules:
- cron: "*/5 * * * *"
  displayName: Run every 5 Mins
  branches:
    include:
    - main
  always: true  

stages:
- stage: BatchRun
  displayName: Batch Run
  condition: and(always(), eq(variables['Build.Reason'], 'Schedule'))
  jobs:
  - job: Echo
    steps:
    - script: 'Hello World'

目前有2个问题

  1. 一推就触发舞台
  2. 作业被跳过并显示一条消息The job was skipped.我不知道为什么。

我试过不同的条件eq(variables['Build.Reason'], 'Schedule')

我也试过在有条件的阶段之前有另一个阶段。

- stage: A
  jobs:
  - job: A1
    steps:
      - script: echo Hello Stage A!

我看过微软的documentation

要使管道不通过推送触发,请添加 trigger: none。更多信息 here.

关于跳过的工作,你似乎找到了答案,但作为参考,GUI settings override YAML时可能会出现这种情况,需要注意

解决方案是

trigger: none

schedules:
- cron: "*/5 * * * *"
  displayName: Run every 5 Mins
  branches:
    include:
    - main
  always: true  

stages:
- stage: BatchRun
  displayName: Batch Run
  jobs:
  - job: Echo
    steps:
    - script: 'echo "Hello World"'
  1. 如@psfi​​naki 提到的那样添加 trigger: none 这样作业就不会 运行 提交
  2. 因为在这个例子中我只有一个阶段,所以我把 condition 一起删除了。如果有多个阶段,则以条件为目标。