【发布时间】:2021-04-11 09:29:48
【问题描述】:
我们的存储库有文件夹,文件夹中的代码有时依赖于其他文件夹中的代码,但仅限于一个方向。解释方式:
C 依赖于 B
B 依赖于 A
我们的主请求请求策略需要 3 个构建:
我们有一个构建(BuildC),它只构建文件夹 C
我们有一个构建 B 和 C 的构建 (BuildB)
我们有一个构建 A、B 和 C 的构建 (BuildA)
政策规定:
文件夹 C 中的更改需要 BuildC
文件夹 B 中的更改需要 BuildB
文件夹 A 中的更改需要 BuildA
想要的效果: 根据具体情况,我希望拉取请求只需要三个构建中的一个。以下是案例:
BuildA - 应在文件夹 A 发生更改时运行(即使其他地方发生更改)
BuildB - 应该在 B(和/或 C)中发生更改但 A 中没有更改时运行。如果文件夹 A 中发生更改,则不应运行此构建
BuildC - 应在文件夹 C 中仅有更改时运行...如果文件夹 A 和/或 B 中存在除 C 之外的更改...此构建不应运行。
实际发生的情况是,如果您更改文件夹 A 和 C 中的某些内容,则会运行两个构建:BuildA 和 BuildC... 如果文件夹 C 中的更改依赖于文件夹 A,那么 BuildC 构建将失败。无论如何,运行 buildC 是一种浪费。
有没有办法让 Azure DevOps 仅排队 1 个构建......但最好的一个。因此,在我们的示例中,BuildA 将运行,但 BuildC 不会运行……但如果更改仅在文件夹 C 中,它会运行 Build C?
【问题讨论】:
标签: azure-devops pull-request azure-devops-server-2019