傳統發行管線
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
傳統發行管線為開發人員提供架構,可有效率且安全地將應用程式部署到多個環境。 使用傳統發行管線,您可以將測試和部署程式自動化、設定彈性的部署策略、併入核准工作流程,並確保跨各種階段順暢的應用程式轉換。
發行管線的運作方式
作為每個部署的一部分,Azure Pipelines 會執行下列步驟:
預先部署核准:
觸發新的部署要求時,Azure Pipelines 會在將發行部署到階段之前,先確認是否需要預先部署核准。 如果需要核准,它會傳送電子郵件通知給相關的核准者。
佇列部署作業:
Azure Pipelines 會排程可用 代理程式的部署作業。
代理程式選取:
可用的代理程式會挑選部署作業。 發行管線可以設定為在運行時間動態選取適當的代理程式。
下載成品:
代理程式會擷取並下載版本中指定的所有成品。
執行部署工作:
代理程式會執行部署作業中的所有工作。
產生進度記錄:
代理程式會為每個部署步驟產生完整的記錄,並將其傳回 Azure Pipelines。
部署後核准:
在部署至階段完成之後,Azure Pipelines 會驗證該特定階段是否需要部署後核准。 如果不需要核准,或取得必要的核准之後,它會繼續起始下一個階段的部署。
部署模型
Azure 發行管線支持各種不同的 成品來源, 包括 Jenkins、Azure Artifacts 和 Team City。 下列範例說明使用 Azure 發行管線的部署模型:
在下列範例中,管線是由來自不同組建管線的兩個組建成品所組成。 應用程式一開始會部署到開發階段,然後部署到兩個不同的 QA 階段。 如果兩個 QA 階段中的部署都成功,應用程式將會部署到 Prod ring 1,然後部署到 Prod ring 2。 每個生產通道都代表部署至世界各地不同位置之相同 Web 應用程式的多個實例。
常見問題集
問:如何在發行時間編輯變數?
答:在發行管線的 [ 變數 ] 索引標籤中,針對您要在發行排入佇列時修改的變數,選取 [在發行時間 設定設定] 複選框。
之後,在產生新版本時,您就能夠修改這些變數的值。
問:何時更適合修改發行,而不是定義發行的管線?
答:您可以編輯發行實例的核准、工作和變數。 不過,這些編輯只會套用至該實例。 如果您想要將變更套用至所有未來的版本,請改為編輯發行管線。
問:「放棄發行」功能有哪些實用案例?
答:如果您不打算重複使用發行,或想要防止它被使用,您可以放棄發行,如下所示的 Pipelines> (...) >放棄。 部署進行時,您無法放棄發行,您必須先取消部署。
問:如何? 管理新版本的命名?
答:發行管線的預設命名慣例是循序編號,其中版本名稱為 Release-1、 Release-2 等等。 不過,您可以藉由修改版本名稱格式遮罩,彈性地自定義命名配置。 在發行管線的 [ 選項 ] 索引標籤中,流覽至 [一般 ] 頁面,並調整 [發行名稱格式 ] 屬性以符合您的喜好設定。
指定格式遮罩時,您可以使用下列預先定義的變數。 範例:下列版本名稱格式: 組建 $(Build.BuildNumber) $(Build.BuildNumber) 的 Release $(Rev:rrr) 將會建立下列版本: 組建 20170213.2 MySampleAppBuild 的版本 002。
變數 | 描述 |
---|---|
Rev: rr | 至少具有指定數字數目的自動遞增數位。 |
日期/日期:MMddyy | 目前日期,預設格式為 MMddy。 支援 M/MM/MMM/MMMM、d/d/d、y/y/y/y、h/hh/HH、m/mm、s/ss 的任何組合。 |
System.TeamProject | 此組建所屬的項目名稱。 |
Release.ReleaseId | 發行的標識碼,這是專案中所有版本的唯一標識符。 |
Release.DefinitionName | 目前版本所屬之發行管線的名稱。 |
Build.BuildNumber | 版本中包含的組建數目。 如果發行有多個組建,則它是主要組建的數目。 |
Build.DefinitionName | 版本中包含的組建管線名稱。 如果發行有多個組建,則它是主要組建的管線名稱。 |
Artifact.ArtifactType | 連結至發行的成品來源類型。 例如,這可以是 Azure Pipelines 或 Jenkins。 |
Build.SourceBranch | 主要成品來源的分支。 針對 Git,如果分支是 refs/heads/main,則此格式為 main。 針對 Team Foundation 版本控制,如果工作區的根伺服器路徑是 $/teamproject/branch,則這是窗體分支。 此變數未針對 Jenkins 或其他成品來源設定。 |
自訂變數 | 發行管線中定義的全域組態屬性值。 您可以使用發行記錄命令,以 自定義變數更新發行名稱 |
問:如何定義發行的保留期間?
答:請參閱 保留原則 ,以瞭解如何為您的發行管線設定保留原則。