[英]Azure DevOps Releases skip tasks
我目前正致力於在 Azure DevOps 2020(內部部署)中為我的公司實施 CI/CD 管道。 有一個要求我似乎無法方便地解決:根據用戶在發布管道中的輸入跳過某些任務。
我想要的是:用戶手動創建新版本並決定是否應執行任務組。
代理任務:
1. Powershell
2. Task Group (conditional)
3. Task Group
4. Powershell
我試過的:
任何幫助將不勝感激!
取決於管道運行的標准是什么。 一項建議是兩條流水線調用相同的模板。 並且每個管道中可能嵌入了一個真/假作為參數傳遞給模板。
模板將包含定義的所有任務; 但是,有條件的將具有以下條件:
condition: and(succeeded(), eq('${{ parameters.runExtraStep}}', true))
此條件將在任務級別設置。
可以在相應的管道中定義任何特定的觸發器。
以下是有關Azure YAML 模板的文檔,可幫助您入門。
不幸的是,不可能為任務組添加自定義條件,但此功能在路線圖上。 檢查以下用戶聲音,您可以投票:
解決方法是您可以克隆發布定義(右鍵單擊發布定義> 克隆),然后刪除一些任務或任務組並保存它,然后您可以根據詳細場景創建具有相應發布定義的發布。
最后我決定堅持使用 Releases 並將我的任務分成 3 個代理工作。 作業 1 帶有第一個 powershell,作業 2 帶有條件任務組,僅當變量為真時才執行,作業 3 帶有其余任務。
正如cece-dong和dreadedfrost所說的那樣,我可以使用 yaml 管道為條件實現可選的運行時參數。 不幸的是,其中一個任務組需要來自 yaml 管道的特定工件。 大多數時候它是“最新的”,這可以通過下載工件任務輕松實現,但有時會選擇以前的工件。 我發現沒有一種簡單的方法可以像在默認情況下有一個包含工件列表的下拉列表的版本一樣方便的方式來實現這一點。
如果有人對如何在 yaml 管道中處理不同的構建工件感興趣,可以找到這篇博文。
謝謝你的協助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.