【问题标题】:TeamCity build - VCS trigger/Branch specification not working as intendedTeamCity 构建 - VCS 触发器/分支规范未按预期工作
【发布时间】:2014-05-13 10:51:35
【问题描述】:

我有一个带有 3 个经典分支(dev、staging、master)的 Git 存储库。 我正在尝试在 TeamCity 8.1.x 中设置 VCS,以便仅在推送到存储库中的特定子文件夹时触发构建。

示例: 在 dev 分支下,我有 2 个文件夹:

(dev)
- ServiceAPI/
- ServiceAPI.Test/

现在,我希望 TeamCity 仅在我推送 ServiceAPI 文件夹中的更改时触发构建,而不是另一个 (ServiceWeb.Test)。

我尝试设置几个不同的配置(我认为这可以使用 Branch Specification 来完成,但它不起作用,或者我做错了)。

在 VCS 配置中,我有:
默认分支设置为 dev
分支规范设置为 + :refs/heads/dev/ServiceAPI/*

假设 Default 分支 始终处于活动状态,
我尝试在 Branch 规范 中添加 -:refs/heads/dev/* 来取消它,但它不起作用。

我也尝试在 Default 分支 中放置与 dev 不同的分支,但是在 dev 中推送更改时触发器不起作用strong> 分支,无论分支规范中有什么。

然后我尝试通过将 -:refs/heads/dev/ServiceAPI.Test/* 插入到分支规范来排除 ServiceApi.Test 文件夹>,但这也没有用。当我将更改推送到任一文件夹时,TeamCity 就会构建。

我希望我能很好地解释这个问题。如果您需要更多信息,请告诉我。
任何想法都将受到欢迎。

问候, 贡纳尔


更新:这个问题已经解决了,但是我不记得具体是怎么解决的了,我懒得去检查了。但是,如果有人遇到此问题但无法解决,请随时告诉我,我很可能会重现该问题并在需要时提供详细答案。

【问题讨论】:

    标签: git build branch teamcity


    【解决方案1】:

    @Gunnar,还有另一种方法。您可以创建一个构建触发器,特别是一个 VCS 触发器,它将忽略您的专有路径中的任何更改。这些在类似于 Ant 的通配符的语法中工作。因此,您可以创建一个触发器,该触发器仅针对 ServiceAPI/ 中的更改运行,或者为除 ServiceAPI.Test/ 之外的任何内容运行的触发器。

    语法为 +:ServiceAPI/** 或 -:ServiceAPI/**。

    PS:另外请注意,您要监控的默认分支与触发条件不同。

    【讨论】:

      【解决方案2】:

      @Gunnar,尝试同时添加 + 和 - 变体,看看它是否有效。如果添加排他性运算符,有时会混淆 teamcity。

      -:refs/heads/dev/* 
      -:refs/heads/dev/ServiceAPI.Test/*
      

      此外,参数化您的 GIT 存储库名称,以便您可以将分支名称(即要监控的)作为参数传递。 IT 将帮助减少 Teamcity 扫描更大的存储库所花费的时间

      @Gunnar,通过参数化我的意思是: 在 teamctity 的 GiT 存储库设置中,对于默认分支输入,为 ex %branch.name% 输入一个参数。在您的构建目标中,如果您使用参数 %branch.name% 提及分支的名称,它只会监视您使用参数提供的分支/路径。例如,如果您在构建目标中将参数设置为开发,它将仅监控开发分支。

      一旦你这样做了,你的排他性操作符就会变成

      -:ServiceAPI.Test/*
      

      【讨论】:

      • 谢谢,但我已经尝试过这个和其他 +|- 组合。如果“默认分支”已经在关注“开发”分支,TC 似乎不会忽略这些。但是你的意思是像这样的某种形式的组合应该有效,对吗?另外,我不知道“参数化我的 Git 存储库名称”是什么意思 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      相关资源
      最近更新 更多