Azure Devops Build:计划构建的参数

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

有什么方法可以在按计划触发时将参数传递给 azure devops 构建管道 (YAML)?例如。如果您想每晚构建一个发布构建,但也想每周构建一个调试构建?

必须将整个构建管道复制到 SomeBuild-Debug 才能生成默认配置=调试的构建,以便能够安排它,这似乎不正确?

azure-devops azure-pipelines
4个回答
9
投票

可以检测到构建是通过计划触发的。根据这些信息,您可以设置某些变量或触发某些进程。

Azure DevOps 管道使您可以访问一堆预定义变量。特别是

Build.Reason

导致构建运行的事件。

  • Manual
    :用户手动对构建进行排队。
  • IndividualCI
    :由 Git 推送或 TFVC 签入触发的持续集成 (CI)。
  • BatchedCI
    :通过 Git 推送或 TFVC 签入触发持续集成 (CI),并选择批量更改。
  • Schedule
    :预定触发。
  • ValidateShelveset
    :用户手动对特定 TFVC 搁置集的构建进行排队。
  • CheckInShelveset
    :门禁签到触发器。
  • PullRequest
    :构建是由需要构建的 Git 分支策略触发的。
  • ResourceTrigger
    :构建是由资源触发器触发的,或者是由另一个构建触发的。

基于此变量,可以定义自定义变量:

variables:
   ${{ if eq( variables['Build.Reason'], 'Schedule' ) }}: 
    myCustomVariable: 'Weekly debug'

或触发自定义流程:

- task: CmdLine@2
  condition: eq( variables['Build.Reason'], 'Schedule' ))
  displayName: 'My scheduled script'
  inputs:
    script: echo "I was launched during a scheduled build"

信用:这个答案的灵感来自Kevin Lu-MSFT'sanswer动态设置自动管道的参数值


3
投票

我最近发现了这个,我认为是有的。如果您有权访问 Azure 门户,则可以创建一个按计划触发的 Azure 逻辑应用程序,并且可以启动“对新构建进行排队”。它允许参数的 json 字典:

这允许使用不同的参数开始构建。


1
投票

您可以通过 REST API 使用外部服务(ansible、自动化任务等)安排 Azure DevOps 构建。在其余 API 调用中,您可以指定输入参数。这样,您将需要使用外部服务而不是 .yml 文件的

schedule
来安排构建管道的触发器。

触发构建管道的示例。您应该替换 **

之间的字符
POST https://dev.azure.com/**GeralexGR**/**test-project**/_apis/pipelines/**11**/runs?&api-version=6.1-preview.1

本体部分

请记住,您还需要使用 PAT 进行身份验证才能使用 Azure Devops 的 REST API。


0
投票

除了 @Métoule 的答案之外,如果您想要拥有多个计划并更改每个计划的运行行为,还可以使用预定义变量 Build.CronSchedule.DisplayName。

schedules:
- cron: '* * * * *'
  displayName: scheduled main build
  branches:
    include:
    - main

- cron: '* * * * *'
  displayName: scheduled develop build
  branches:
    include:
    - develop

steps:

- ${{ if eq( variables['Build.CronSchedule.DisplayName'], 'scheduled main build' ) }}:
  - script: echo scheduled build from main!

- ${{ if eq( variables['Build.CronSchedule.DisplayName'], 'scheduled develop build' ) }}:
  - script: echo scheduled build from develop!
© www.soinside.com 2019 - 2024. All rights reserved.