Azure Devops Build:计划构建的参数

And*_*ren 9 azure-devops azure-pipelines

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

必须将整个构建管道复制到 SomeBuild-Debug 才能创建默认为 configuration=debug 的构建,以便能够安排它,这似乎是不对的?

Mét*_*ule 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'
Run Code Online (Sandbox Code Playgroud)

或触发自定义流程:

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

图片来源:这个答案的灵感来自Kevin Lu-MSFT的回答“Settingparametervaluedynamicforautomaticpipelines”


小智 3

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

在此输入图像描述

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