ADO 如何为 cron 触发运行设置管道参数?

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

我有一个计划与 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
标签。所以我需要知道如何读取该标签。如果我弄清楚了这一点,我将更新并标记为已回答。

azure-devops cron yaml azure-pipelines
2个回答
1
投票

我通过检查

variables['Build.Reason']
是否等于
Schedule

解决了这个问题
  - task: AddTag@0
    displayName: Tag Build with 'DevelopmentReady'
    condition: eq(variables['Build.Reason'], 'Schedule')
    inputs:
      tags: 'DevelopmentReady'

0
投票

正如您在回答中提到的,您可以使用:

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

如果您有多个具有不同目的的计划并且需要适应特定的 cron,您也可以使用以下内容:

eq(variables['Build.CronSchedule.DisplayName'], 'Specific Schedule Display Name')

参考:https://learn.microsoft.com/en-us/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml

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