TeamCity 根据拉取请求构建特定分支

时间:2021-05-11 09:49:23

标签: git teamcity

我有一个由几个这样的项目组成的解决方案:

MySolution
-Project1
-Project2
-Project3

对于每个项目,我在 github 上都有一个分支,例如 Project1Branch、Project2Branch……我在 teamcity 上配置了触发器,用于将 pullrequest 上的容器构建到 master 中。但是当它发生时,所有三个项目都被构建了,尽管只在 Projeсt1 中进行了更改。我尝试在构建步骤 +:Project1* 的触发器中配置分支过滤器,但不起作用。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

TL;DR

  • 将您的触发器分支过滤器留给+:*
  • Pull Requests 构建功能中,将“源”配置为 Project1Branch,将“目标”配置为 master 分支。
  • 尽量减少 VCS 配置(见下文)。

对于 Project1Project1Branch 的每个 MR 构建到 master 中:

只关注 Project1Branch 分支。在您的VCS 配置中:

  • 默认分支: refs/heads/Project1Branch
  • (可选,除非您需要分支过滤构建步骤)分支规范: Project1Branch

将与您的模式匹配的 merge-request/... 分支添加到监视分支。 拉取请求过滤

  • 按源分支: +:refs/heads/Project1Branch
  • 按目标分支: +:refs/heads/master

在监视分支中的每个更改时触发。 触发器

  • 分支过滤器: +:*

如果您想在 MR 分支上触发,请执行触发器

  • 分支过滤器:
+:*
-:Project1Branch

Project2Project3 也是如此。