我有一个计划与 cron 作业一起运行的管道。
如果用户想要手动运行此管道,他们可以选择
TagDevelopmentReady
,默认情况下未选中该选项(在 yaml 中参数设置为 false)。
但是,当预定的跑步开始时,我需要
TagDevelopmentReady
始终为 true
。
我可以使用一个条件来确定跑步是否已安排吗?或者 cron 作业可以以某种方式传入参数吗?
schedules:
- cron: 0 5 * * 0-5
displayName: At 5:00 UTC on all days except Saturday
branches:
include:
- my_branch
always: true
parameters:
- name: TagDevelopmentReady
type: boolean
values: [true, false]
default: 'false'
steps:
- task: AddTag@0
displayName: Tag Build with 'DevelopmentReady'
condition: eq(${{ parameters.TagDevelopmentReady }}, 'true')
inputs:
tags: 'DevelopmentReady'
编辑:运行确实添加了
Schedule
标签。所以我需要知道如何读取该标签。如果我弄清楚了这一点,我将更新并标记为已回答。
我通过检查
variables['Build.Reason']
是否等于 Schedule
解决了这个问题
- task: AddTag@0
displayName: Tag Build with 'DevelopmentReady'
condition: eq(variables['Build.Reason'], 'Schedule')
inputs:
tags: 'DevelopmentReady'
正如您在回答中提到的,您可以使用:
eq(variables['Build.Reason'], 'Schedule')
如果您有多个具有不同目的的计划并且需要适应特定的 cron,您也可以使用以下内容:
eq(variables['Build.CronSchedule.DisplayName'], 'Specific Schedule Display Name')