【问题标题】:Avoid Building Multiple Solutions Present Under Single Git Repo in Teamcity避免在 Teamcity 中的单个 Git 存储库下构建多个解决方案
【发布时间】:2018-02-01 21:22:04
【问题描述】:

以下是我们的 git repo 结构

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

我们已经创建了两个单独的 Teamcity 项目用于配置和部署。

  1. Teamcity.Application.Provisioning(指向 Provisioning.sln)
  2. Teamcity.Application.Deployment(指向 Deployment.sln)

在两个 teamcity 项目中,我们在配置 VCS Root 时在“获取 URL”设置中提供了相同的 Git Repo URL。现在,当我们在“Source”文件夹中执行 CheckIn 时,两个 teamcity 项目的构建都被触发,因为 Git Repo URL 相同。

我们的期望是,如果我们在“Source”文件夹中执行 CheckIn,则只会触发 Teamcity.Application.Deployment 的构建。

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

【问题讨论】:

    标签: git github teamcity


    【解决方案1】:

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

    在您的 Build 中:Provisionning 像这样设置结帐规则:

    +:Provisioning => Provisioning
    

    在您的 Deployment 构建中,您可以像这样设置结帐规则:

    +:Source => Source
    

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

    就我而言,当我需要这样做时,我更喜欢使用一些变量来定义结帐路径并对其进行单点修改:

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

    【讨论】:

    • 这是完美的解决方案。你救了我们的命 :) 谢谢@Didier
    【解决方案2】:

    是的,在构建设置的“触发器”部分,您可以指定要观看的相对路径(语法可以通过包含或排除模式完成)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 2017-03-25
      • 2015-05-29
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多