[英]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對自動管道動態設置參數值的回答
可以使用 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.