在 Azure Pipelines 中建置多個分支

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

使用 Azure Pipelines,您可以建立觸發程式,以在每個新的認可和提取要求上建置專案至您的存放庫。 在本文中,您將瞭解如何啟用持續整合,併為您的存放庫設定多個分支組建。

必要條件

啟用主題分支的 CI 觸發程式

使用 Git 時,從主要分支建立暫存分支以利簡化工作流程是常見的作法。 這些分支通常稱為主題或功能分支,可用來隔離您的工作。 在此工作流程中,您會建立專用於特定功能或 Bug 修正的分支,並在完成之後,先將程式代碼合併回 main 分支,再刪除主題分支。

如果您的 YAML 檔案中未明確指定任何觸發程式,對任何分支所做的任何變更都會觸發執行。 若要新增主要分支和任何功能/分支的觸發程式,請在 YAML 檔案中包含下列代碼段。 這可確保對這些分支所做的任何修改都會自動觸發管線執行。

trigger:
- main
- feature/*

TFS 尚無法使用 YAML 組建。

根據所建置的分支自定義建置工作

主要分支通常負責產生可部署的成品,例如二進位檔。 對於短期功能分支,不需要投入時間來建立和儲存這些成品。 在 Azure Pipelines 中,您可以實作自定義條件,以確保特定工作只會在主要分支上執行。

編輯主要分支中的azure-pipelines.yml檔案,並將條件新增至所需的工作。 例如,下列代碼段會將條件新增至 發佈管線成品工作

- task: PublishPipelineArtifact@1
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))

TFS 尚無法使用 YAML 組建。

驗證提取要求

若要確保分支保護,您可以在合併提取要求之前,先利用授權成功建置的原則。 使用 Azure Pipelines 時,您可以彈性地設定新成功組建的需求,以便將變更合併至主要分支等重要分支。

GitHub 存放庫

如果您未在 YAML 檔案中明確定義 pr 觸發程式,預設會為所有分支啟用提取要求組建。 不過,您可以彈性地指定提取要求組建的目標分支。 例如,如果您想要針對以功能/開始的主要分支和分支為目標的提取要求獨佔執行組建,您可以指定下列組態:

pr:
- main
- feature/*

TFS 尚無法使用 YAML 組建。

Azure Repos 存放庫

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 選取 [存放庫 ],然後選取 [ 分支]。

  3. 選取分支名稱右側的省略號圖示,然後選取 [分支原則]。

  4. 在 [ 建置驗證 ] 功能表下,選取 [+ 符號] 以新增組建原則。

  5. 從下拉功能表中選取您的 [建置管線 ], 並確定 [觸發 程式] 設定為 [自動],並將 [ 原則需求 ] 設定為 [必要]。

  6. 輸入描述性 顯示名稱 以描述原則。

  7. 選取 [ 儲存 ] 以建立並啟用原則。 選取 畫面左上方的 [儲存變更 ] 以儲存變更。

顯示如何新增組建原則的螢幕快照。

  1. 若要測試原則,請流覽至 Azure DevOps 入口網站中的 Repos>提取要求。

  2. 選取 [ 新增提取要求 ],並確定您的主題分支已設定為合併到您的主要分支,然後選取 [ 建立]。

  3. 在您的畫面上,您可以看到目前正在執行的原則。

  4. 選取原則 名稱 以檢查組建。 如果組建成功,您的提取要求將會合併。 如果組建失敗,合併將會遭到封鎖。

注意

Azure Pipelines 不再支持個別管線保留原則。 我們建議使用專案層級保留規則。