【发布时间】:2021-06-08 12:09:02
【问题描述】:
我有一个非常简单的 管道,它有一个 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个问题
- 按下时会触发舞台。
- 作业被跳过并显示一条消息
The job was skipped.我不知道为什么。
我尝试过不同的条件eq(variables['Build.Reason'], 'Schedule')
我也尝试过在有条件的阶段之前有另一个阶段。
- stage: A
jobs:
- job: A1
steps:
- script: echo Hello Stage A!
我看过微软的documentation。
【问题讨论】:
-
我猜跳过是由于 ADO 没有将运行识别为计划,因为它听起来像是每次推送都会停止。您要推送的分支是主分支还是其他分支?
-
@DreadFrost 在 master 上,如果作业按计划识别,有什么方法可以检查(日志)或其他方式?
-
您的管道正在寻找
main如果您想在管道运行后进行检查,请单击汉堡菜单并下载日志。有一个 azure-pipelines.expanded.yaml 文件 -
我在捂脸,复制和粘贴的副作用,刚刚更正,我的第二阶段现在正在运行,将等待 5 分钟后它是否会再次运行。还会检查当我有另一个提交时会发生什么,谢谢。稍后会在这里更新。
-
在默认值从
master切换到main后,我的管道也遇到了同样的问题 :)
标签: azure-devops conditional-statements azure-pipelines scheduled-tasks azure-pipelines-yaml