在 Azure Pipelines 中生成多个分支

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

使用 Azure Pipelines,可以创建触发器,以在每次对存储库进行新提交和拉取请求时生成项目。 在本文中,你将了解如何启用持续集成并为存储库设置多个分支生成。

先决条件

  • Azure DevOps 组织和项目。 创建 组织项目 (如果尚未创建)。

  • 一个正常运行的管道。 按照创建第一个管道中的说明创建你的管道。

为主题分支启用 CI 触发器

使用 Git 时,从主分支创建临时分支以简化工作流是一种常见做法。 这些分支通常称为主题或功能分支,用于隔离工作。 在此工作流中,你将创建专用于特定功能或 bug 修复的分支,完成该分支后,可在删除主题分支之前将代码合并回主分支。

如果在 YAML 文件中未显式指定任何触发器,则对任何分支进行的任何更改都将触发运行。 要为 main 分支及任何 feature/ 分支添加触发器,请在 YAML 文件中包含以下代码片段。 这将确保对这些分支进行的任何修改都将自动触发管道运行。

trigger:
- main
- feature/*

YAML 生成在 TFS 上尚不可用。

基于正在生成的分支自定义生成任务

主分支通常负责生成可部署的工件,例如二进制文件。 对于短期功能分支,无需投入时间创建和存储这些工件。 在 Azure Pipelines 中,可以实现自定义条件,以确保仅在主分支上执行特定任务。

main 分支中编辑 azure-pipelines.yml 文件,并将条件添加到所需任务。 例如,以下代码片段向发布管道工件任务添加了一个条件。

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

YAML 生成在 TFS 上尚不可用。

验证拉取请求

为确保分支保护,可以利用在合并拉取请求之前强制成功生成的策略。 使用 Azure Pipelines 可以灵活地配置新的成功生成要求,以将更改合并到主分支等重要分支中。

GitHub 存储库

如果未在 YAML 文件中显式定义 pr 触发器,则默认情况下会为所有分支启用拉取请求生成。 不过,可以灵活地为拉取请求生成指定目标分支。 例如,如果要专门为针对主分支和以 feature/开头分支的拉取请求运行生成,可以指定以下配置:

pr:
- main
- feature/*

YAML 生成在 TFS 上尚不可用。

Azure Repos 存储库

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

  2. 选择“Repos”,然后选择“分支”

  3. 选择分支名称右侧的省略号图标,然后选择“分支策略”

  4. 在“生成验证”菜单下,选择 + 号以添加生成策略。

  5. 从下拉菜单中选择“生成管道”,确保“触发器”设置为自动且“策略要求”设置为必需。

  6. 输入描述性“显示名称”以描述策略。

  7. 选择“保存”以创建并启用策略。 选择屏幕左上角的“保存更改”,保存你的更改。

显示如何添加新生产策略的截图。

  1. 要测试策略,请在 Azure DevOps 门户中导航到“Repos”>“拉取请求”

  2. 选择“新建拉取请求”并确保主题分支设置为合并到主分支,然后选择”创建”

  3. 在屏幕上,可以看到当前正在执行的策略。

  4. 选择“策略名称”以检查生成。 如果生成成功,拉取请求将合并。 如果生成失败,将阻止合并。

注意

Azure Pipelines 不再支持按管道保留策略。 建议使用项目级保留规则。