避免在Teamcity中使用单一Git Repo构建多个解决方案

时间:2018-02-01 08:43:27

标签: git github teamcity

以下是我们的git repo结构

GitRepo
  |
  |-Provisioning
  |        |-Provisioning.sln
  |
  |-Source
  |     |-Deployment.sln

我们为供应和部署创建了两个独立的Teamcity项目。

  1. Teamcity.Application.Provisioning(指向Provisioning.sln)
  2. Teamcity.Application.Deployment(指向Deployment.sln)
  3. 在两个团队项目中,我们在“获取网址”中提供了相同的Git Repo网址。配置VCS Root时进行设置。现在,当我们在Source'中执行CheckIn时文件夹当Git Repo URL相同时,两个团队项目的构建都会被触发。

    我们的期望是,如果我们在源'中执行CheckIn。文件夹只构建Teamcity.Application.Deployment应该触发。

    有没有办法控制这种行为?

2 个答案:

答案 0 :(得分:0)

是的,在'触发器'作为构建设置的一部分,您可以指定要监视的相对路径(语法可以通过包含或排除模式来完成)

https://confluence.jetbrains.com/plugins/servlet/mobile#ConfiguringVCSTriggers-TriggeringaBuildonBranchMerge

答案 1 :(得分:0)

您可以使用VCS结帐规则处理此问题:

在您的构建中:Provisionning设置结帐规则,如下所示:

+:Provisioning => Provisioning

Deployment版本中,您可以像这样设置结帐规则:

+:Source => Source

如果需要,您可以重新映射结帐文件夹以符合您的期望。

在我的情况下,当我需要这样做时,我更喜欢使用一些变量来定义结帐路径并将其修改为单点:

VCS结帐规则:+:%SrcFolder% => %SrcFolder% BuildStep:msbuild %srcFolder%/MyApp.sln 所以我可以使用模板将构建配置共享给多个项目。