我一直在爲此奮鬥了一天以上。我在VSTS CI/CD管道中有一個簡單的要求,我試圖建立任何遵循模式release/*
或hotfix/*
的分支應該觸發部署到我的QA環境。下面是我基於支路的構成:CI/CD部署條件不觸發
預期此配置不觸發部署。正如你在下面的屏幕截圖中看到的那樣,該版本運行但沒有觸發我的任何環境。 (QA是右側第二個灰色方塊,根據部署是成功還是失敗,應爲綠色或紅色)。
在試圖解決這個問題,我試圖用建立標籤來代替。我添加了一個Powershell步驟,該步驟根據分支的名稱有條件地添加Build Tags。
$branchName = $Env:BUILD_SOURCEBRANCH
if ($branchName -like '*release/*')
{
Write-Host "##vso[build.addbuildtag]release"
}
if ($branchName -like '*hotfix/*')
{
Write-Host "##vso[build.addbuildtag]hotfix"
}
正確設置構建標記,因爲我可以在構建工件和標記所應用的日誌上看到它們。然而,修改我的部署條件是標籤完全相同的行爲,知道結果使用我嘗試分支:
編輯: 按照要求,這裏是中獲取源代碼的CI定義顯示的步驟。這裏沒有選擇添加多個分支條件的選項。它們在觸發器部分中設置。
你用一個分支而不是通配符模式試過嗎? –
@DanielMann是的,它唯一觸發的時間是如果我指定一個特定的分支名稱。作爲臨時解決方案,我可以手動添加已知的發行版/修補程序分支,但VSTS應該支持更智能的部署條件。所有通過用戶界面,他們讓你做模式匹配 –
你也可以分享釋放工件的設置?它是一個構建?如果是,則在構建定義中共享「獲取源」步驟的設置。 –