通过


使用经典发布管道将多个分支部署到不同阶段

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

经典发布管道提供了一种图形方式,用于为应用程序设置持续交付。 可以将发布配置为在新的工件可用时自动触发,然后使用工件筛选器将特定分支映射到特定阶段。 此方法允许将每个分支部署到你打算的阶段。 本文逐步讲解如何配置基于源分支部署到不同阶段的经典发布管道。

先决条件

产品 要求
Azure DevOps - Azure DevOps 组织
- Azure DevOps 项目
- 为存储库设置的流水线,用于构建项目并生成流水线工件。 如果还没有经典管道,请创建一个。

创建经典发布管道

在本部分中,将创建基本经典发布管道并配置第一阶段(开发)。 添加项目源,启用自动发布创建,并应用项目筛选器,以便此阶段仅在生成来自 开发 分支时运行。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择管道>发布

  3. 创建新的经典发布流水线:

    • 如果这是第一个发布管道,请选择“ 新建管道”。
    • 如果已有发布管道,请选择 “新建>发布管道”。
  4. 在模板选取器中,选择“ 从空作业开始”。

  5. “阶段”下,选择默认阶段并将其重命名为 Dev。 在后续步骤中,将此阶段配置为仅在从 Dev 分支生成项目时才进行部署。

    显示如何在经典发布管道中重命名某个阶段的截屏。

  6. 在“ 项目”下,选择“ 添加”。

  7. 配置制品源:

    • 选择 源类型
    • 完成该源类型的必填字段,例如项目、管道和默认版本。
    • 选择 并添加

    显示如何将工件添加到经典发布管道的屏幕截图。

  8. 选择项目上的 “持续部署触发器 ”图标,然后打开 “持续部署触发器 ”,以在有新项目可用时创建发布。

    显示如何在经典发布管道中启用持续部署触发器的屏幕截图。

  9. 开发 阶段中,选择 “预部署条件 ”图标。

  10. 部署触发器 设置为 “发布后 ”,以便在创建新版本时阶段自动启动。

  11. 仍处于 预部署条件中,配置基于分支的筛选:

    • 打开 项目筛选器
    • 选择 并添加
    • 选择之前添加的项目。
    • 构建分支 设置为 Dev

    在应用此筛选器后,仅当从开发分支的构建生成发布时,开发阶段才会部署。

    显示如何在经典发布管道中设置预部署条件的屏幕截图。

添加新阶段

在本部分中,将第二个阶段(Prod)添加到同一发布管道,并将其配置为仅在从 分支生成项目时才进行部署。 这让您能够在不同环境中保持分支与阶段路由的一致性。

  1. 登录到 Azure DevOps 组织,并导航到你的项目。

  2. 选择 “管道>发布”,打开之前创建的发布管道,然后选择“ 编辑”。

  3. “阶段”下,选择“ 添加新>阶段”。

  4. 在模板选取器中,选择“ 从空作业开始”。

  5. 选择新阶段并将其重命名为 Prod。在后续步骤中,将配置此阶段,以便仅当项目来自 分支时才进行部署。

  6. Prod 阶段中,选择 “预部署条件 ”图标。

  7. 部署触发器 设置为 “发布后 ”,以便在创建新版本时此阶段自动启动。

  8. 仍在进行预部署,在生产环境中配置基于分支的过滤:

    • 打开 项目筛选器
    • 选择 并添加
    • 选择之前配置的相同工件源。
    • 生成分支 设置为 main

    在此筛选器到位后, Prod 阶段仅在从 分支的内部版本创建发布时才进行部署。

    显示如何在经典发布管道中为生产阶段配置预部署条件的屏幕截图。

部署到指定的阶段

此时,发布管道配置为按分支路由部署:Dev 分支中的项目部署到 Dev 阶段,Main 分支中的项目部署到 Prod 阶段。 使用以下检查来验证分支筛选器是否按预期工作。

  1. Dev 分支触发构建,以便发布新的制品版本。

  2. 打开 Pipelines>发布版本,然后打开新创建的版本。

  3. 验证 开发 阶段是否启动(或已排队),并跳过 生产 阶段,因为工件分支与其筛选器不匹配。

  4. main分支触发第二次构建。

  5. 打开新版本并验证相反的行为: 启动 Prod 阶段,并跳过 开发 阶段。

  6. 如果阶段的行为不符合预期,请打开该阶段的 预部署条件 ,并确认 项目筛选器 分支值和所选项目源。

通过验证这两个分支路径,可以确认每个环境仅从适用于该阶段的分支进行部署。