Azure DevOps Pipelines,作业如何知道它是从计划触发的?

Ken*_* Jr 4 azure azure-devops azure-pipelines azure-pipelines-yaml

我有一个 Azure DevOps 系统已启动并正在运行,并具有根据 PR 以及夜间计划运行管道的触发器,如下所示:

trigger:
 batch: true
 branches:
  include:
   - main
   - release/*
   - pre-release/*

schedules:
  - cron: "0 0 * * *"
    displayName: Daily midnight build
    branches:
      include:
        #- main
        #- release/*
        - pre-release/*
    always: false
Run Code Online (Sandbox Code Playgroud)

有没有办法让工作知道这是从 Schedule 而不是 PR 调用的?我想添加另一系列更严格的测试,但只是在夜间进行,作为日常工作的一部分。

也许设置一个可以稍后在管道中检查的变量。

Tho*_*mas 6

您可以使用Build.Reason 预定义变量

在您的情况下,检查是否$(Build.Reason)等于Schedule应该有效。

构建. 原因. 导致构建运行的事件。

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