Azure 管道跳过计划作业

时间:2021-06-08 12:09:02

标签: azure-devops conditional-statements azure-pipelines scheduled-tasks azure-pipelines-yaml

我有一个非常简单的管道,它有一个1 个阶段1 个作业打印 {{1 }}。

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

Hello World

目前有两个问题

  1. 当我按下时触发舞台。
  2. 作业被跳过,并显示一条消息 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' 我不知道原因。

我尝试了不同的条件 The job was skipped.

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

eq(variables['Build.Reason'], 'Schedule')

我看过微软的 documentation

2 个答案:

答案 0 :(得分:1)

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

对于跳过的工作,您似乎已经找到了答案,但作为参考,当GUI settings override YAML时可能会发生这种情况,需要注意。

答案 1 :(得分:0)

解决方案是

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. trigger: none 添加为 @psfi​​naki 提到的,这样作业就不会在提交时运行
  2. 由于在此示例中我只有一个阶段,因此我将 condition 全部删除。如果有多个阶段,那么这些甘蔗就会有条件地作为目标。