在 Azure Pipelines 中生成多个分支
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
使用 Azure Pipelines,可以创建触发器,以在每次对存储库进行新提交和拉取请求时生成项目。 在本文中,你将了解如何启用持续集成并为存储库设置多个分支生成。
先决条件
为主题分支启用 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 存储库
登录到 Azure DevOps 组织,并导航到你的项目。
选择“Repos”,然后选择“分支”。
选择分支名称右侧的省略号图标,然后选择“分支策略”。
在“生成验证”菜单下,选择 + 号以添加生成策略。
从下拉菜单中选择“生成管道”,确保“触发器”设置为自动且“策略要求”设置为必需。
输入描述性“显示名称”以描述策略。
选择“保存”以创建并启用策略。 选择屏幕左上角的“保存更改”,保存你的更改。
要测试策略,请在 Azure DevOps 门户中导航到“Repos”>“拉取请求”。
选择“新建拉取请求”并确保主题分支设置为合并到主分支,然后选择”创建”。
在屏幕上,可以看到当前正在执行的策略。
选择“策略名称”以检查生成。 如果生成成功,拉取请求将合并。 如果生成失败,将阻止合并。
注意
Azure Pipelines 不再支持按管道保留策略。 建议使用项目级保留规则。