azure-pipelines - Azure DevOps YAML - 每个版本/分支概念的多个管道问题
问题描述
简化我当前的情况是我有两个分支“开发”和“发布”的回购。有azure-pipeline.yml
文件和两个管道附加到它(每个分支一个)。在develop
我有:
trigger:
branches:
include:
- develop
在release
是:
trigger:
branches:
include:
- release
当我只提交对其中一个分支的更改时,会触发两个管道 - 为什么?我在这里错过了什么?
我应该排除 oposit 分支(或将来更多分支)还是可能有两个单独的文件azure-pipeline-develop.yml
和azure-pipeline-release.yml
?
每个应用程序版本都有构建的一般概念是什么?例如,当我因为打补丁而仍想构建旧版本时?
哪个选项更容易维护?
解决方案
如果我对您的理解正确,您在 Azure DevOps 中有一个azure-pipeline.yml
文件和两个管道,每个管道都使用相同的文件。
由于 Azure DevOps 中的两个管道都使用相同的 yaml 文件,因此每个管道都会在每个分支的每次推送时评估所有分支的触发器。
您期望成为“发布”管道的管道不知道它不应该运行“开发”构建。
正如您所提到的,解决此问题的方法之一是创建两个 yaml 文件,每个管道一个,但是我认为有更好的方法。
从同一管道构建所有分支。
Azure DevOps 旨在从同一管道构建多个分支。如果你想构建一个/release
分支,你可以在构建分支的同一管道中构建它/develop
。此处的文档和教程:https ://docs.microsoft.com/en-us/azure/devops/pipelines/build/ci-build-git?view=azure-devops&tabs=yaml
推荐阅读
- xcode - (已解决)在 SwiftUI 的文本字段中预输入文本
- python - 使用 Pandas 计算未分组订单的空行数
- c - 指针失去价值?
- pytorch - PyTorch,除以零时,将结果值设置为 0
- orbeon - Orbeon 使 Authorization 标头可选
- django - 如何根据用户输入查询数据库并在另一个页面中显示结果?
- html - Why CSS selector :first-child:not(.ignore) doesn't exclude `ignore` class from selection?
- php - 检查php中数组中所有值的相等性
- r - R / igraph:调整顶点上边缘的交汇点
- laravel - Laravel 无需注册即可登录