簡體   English   中英

Azure Devops 構建:計划構建的參數

[英]Azure Devops Build: parameters for scheduled builds

有沒有辦法在按計划觸發時將參數傳遞給 azure devops 構建管道 (YAML)? 例如,如果您想每晚構建一個發布版本,但也想每周構建一個調試版本?

似乎不應該將整個構建管道復制到 SomeBuild-Debug 以創建一個默認配置為 debug 的構建,以便能夠安排它?

可以檢測到構建是通過計划觸發的。 根據這些信息,您可以設置某些變量或觸發某些過程。

Azure DevOps 管道讓您可以訪問一堆預定義的變量 特別是Build.Reason

導致構建運行的事件。

  • Manual :用戶手動對構建進行排隊。
  • IndividualCI :由 Git 推送或 TFVC 簽入觸發的持續集成 (CI)。
  • BatchedCI :由 Git 推送或 TFVC 簽入觸發的持續集成 (CI),並選擇了 Batch changes。
  • 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自動管道動態設置參數值的回答

我最近遇到了這個,我認為有。 如果您有權訪問 azure 門戶,則可以創建一個按計划觸發的 Azure 邏輯應用程序,並可以啟動“排隊新構建”。 它允許使用參數的 json 字典:

在此處輸入圖片說明

這允許使用不同的參數開始構建。

可以使用 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM