Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
经典发布管道提供了一种图形方式,用于为应用程序设置持续交付。 可以将发布配置为在新的工件可用时自动触发,然后使用工件筛选器将特定分支映射到特定阶段。 此方法允许将每个分支部署到你打算的阶段。 本文逐步讲解如何配置基于源分支部署到不同阶段的经典发布管道。
先决条件
| 产品 | 要求 |
|---|---|
| Azure DevOps | - Azure DevOps 组织。 - Azure DevOps 项目。 - 为存储库设置的流水线,用于构建项目并生成流水线工件。 如果还没有经典管道,请创建一个。 |
创建经典发布管道
在本部分中,将创建基本经典发布管道并配置第一阶段(开发)。 添加项目源,启用自动发布创建,并应用项目筛选器,以便此阶段仅在生成来自 开发 分支时运行。
登录到 Azure DevOps 组织,并导航到你的项目。
选择管道>发布。
创建新的经典发布流水线:
- 如果这是第一个发布管道,请选择“ 新建管道”。
- 如果已有发布管道,请选择 “新建>发布管道”。
在模板选取器中,选择“ 从空作业开始”。
在 “阶段”下,选择默认阶段并将其重命名为 Dev。 在后续步骤中,将此阶段配置为仅在从 Dev 分支生成项目时才进行部署。
在“ 项目”下,选择“ 添加”。
配置制品源:
- 选择 源类型。
- 完成该源类型的必填字段,例如项目、管道和默认版本。
- 选择 并添加。
选择项目上的 “持续部署触发器 ”图标,然后打开 “持续部署触发器 ”,以在有新项目可用时创建发布。
在 开发 阶段中,选择 “预部署条件 ”图标。
将 部署触发器 设置为 “发布后 ”,以便在创建新版本时阶段自动启动。
仍处于 预部署条件中,配置基于分支的筛选:
- 打开 项目筛选器。
- 选择 并添加。
- 选择之前添加的项目。
- 将 构建分支 设置为 Dev。
在应用此筛选器后,仅当从开发分支的构建生成发布时,开发阶段才会部署。
添加新阶段
在本部分中,将第二个阶段(Prod)添加到同一发布管道,并将其配置为仅在从 主 分支生成项目时才进行部署。 这让您能够在不同环境中保持分支与阶段路由的一致性。
登录到 Azure DevOps 组织,并导航到你的项目。
选择 “管道>发布”,打开之前创建的发布管道,然后选择“ 编辑”。
在 “阶段”下,选择“ 添加新>阶段”。
在模板选取器中,选择“ 从空作业开始”。
选择新阶段并将其重命名为 Prod。在后续步骤中,将配置此阶段,以便仅当项目来自 主 分支时才进行部署。
在 Prod 阶段中,选择 “预部署条件 ”图标。
将 部署触发器 设置为 “发布后 ”,以便在创建新版本时此阶段自动启动。
仍在进行预部署,在生产环境中配置基于分支的过滤:
- 打开 项目筛选器。
- 选择 并添加。
- 选择之前配置的相同工件源。
- 将 生成分支 设置为 main。
在此筛选器到位后, Prod 阶段仅在从 主 分支的内部版本创建发布时才进行部署。
部署到指定的阶段
此时,发布管道配置为按分支路由部署:Dev 分支中的项目部署到 Dev 阶段,Main 分支中的项目部署到 Prod 阶段。 使用以下检查来验证分支筛选器是否按预期工作。
从 Dev 分支触发构建,以便发布新的制品版本。
打开 Pipelines>发布版本,然后打开新创建的版本。
验证 开发 阶段是否启动(或已排队),并跳过 生产 阶段,因为工件分支与其筛选器不匹配。
从main分支触发第二次构建。
打开新版本并验证相反的行为: 启动 Prod 阶段,并跳过 开发 阶段。
如果阶段的行为不符合预期,请打开该阶段的 预部署条件 ,并确认 项目筛选器 分支值和所选项目源。
通过验证这两个分支路径,可以确认每个环境仅从适用于该阶段的分支进行部署。