在 Azure Pipelines 中生成多个分支

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

使用 Azure Pipelines,可以创建触发器,以在每次向存储库提交和拉取请求时生成项目。 本文介绍如何启用持续集成并为存储库设置多个分支生成。

先决条件

为主题分支启用 CI 触发器

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

如果在 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. 选择 Repos ,然后选择 “分支”。

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

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

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

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

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

显示如何添加新生成策略的屏幕截图。

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

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

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

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

注释

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