設定:
我有一個資料庫 repo 和一個測驗資料庫 repo 的單元測驗 repo。
我有一個資料庫 repo 和一個測驗資料庫 repo 的單元測驗 repo,兩者在 Azure DevOps 中共享一個專案。我有一個駐扎在資料庫專案中的CI管道,在推送到遠程跟蹤分支時被觸發。當該目錄中的任何分支被推送到時,該觸發器將運行CI。
問題是:
我需要檢查一下單元測驗。
我需要把單元測驗專案也檢查出來,以便我可以呼叫它。在我們創建任務等之前,我們不會知道主題分支會有什么名字,如何動態地捕獲這些名字呢?
因此,工程師可以在 CI 支持下在多個分支上作業,而不必擔心在緊急狀況下的整理問題。
我試過:
trigger:
- dev/a/*
步驟:
- checkout: git://proj/repo-a@dev/a/*
- checkout: git://proj/repo-b@dev/a/*
只是想看看是否有可能得到專案并排的情況。
它引發了對專案的關注。
它引發了錯誤: 管道是無效的。無法獲得最新的源代碼版本
倉庫的最新源版本。
refs/heads/dev/a/。無法獲得
儲存庫-b的最新源版本。
refs/heads/dev/a/. 我也嘗試了上述沒有通配符的做法,沒有收獲。另一點是,我不希望檢查所有的分支,只希望檢查有推送的那個分支。
這當然是可能的... uj5u.com熱心網友回復: 為了動態地簽出分支,你可以使用預定義的變數。 例如: 由于你參考了兩個repo,你還需要添加一個If運算式來確定哪個repo觸發了構建,并使用目標repo分支名稱。 你可以使用這個變數。 這里有一個例子: 或者你可以使用條件。 例如:
標籤: 上一篇:如何制作按鈕的網格
Build.SourceBranchName。- checkout: git://proj/repo-a@$(Build.SourceBranchName)
Build.Repository.Namesteps:
- ${{ if eq(variables['BUILD. REPOSITORY.NAME'], 'repo-a') }:
- checkout: git://proj/repo-a@$(Build.SourceBranchName)
- ${{ if eq(variables['BUILD. REPOSITORY.NAME'], 'repo-b') }:
- checkout: git://proj/repo-b@$(Build.SourceBranchName)
- checkout: git://proj/repo-a@$(Build.SourceBranchName)
條件: eq(variables['BUILD.REPOSITORY.NAME'], 'repo-a')
- checkout: git://proj/repo-b@$(Build.SourceBranchName)
條件: eq(variables['BUILD.REPOSITORY.NAME'], 'repo-b')
