0

我需要两个具有不同 Per-Checkin 触发规则的 VCS 触发器,这些规则基于一个班克过滤器。

原因:对于“release-*”和“master”分支,当我合并所有内容时,我不希望每次签入都创建一个构建,但是在使用任何其他分支时我会这样做。我虽然可以通过添加第二个触发器来过滤分支来做到这一点,所以它们看起来像这样:

第一个 VCS 触发器,这将构建所有这些分支,并选中“在每次签入时触发构建”

-:*
+:refs/heads/hotfix/hotfix-*
+:refs/heads/develop
+:refs/heads/feature/feature-*

第二个 VCS 触发器,这将构建所有这些分支,未选中“在每次签入时触发构建”

-:*
+:refs/heads/release/release-*
+:refs/heads/master

在此处输入图像描述

(请原谅我不那么史诗的绘画技巧)

还有其他方法可以做到这一点吗?

谢谢

史蒂夫

4

2 回答 2

0

我找不到如何在单个构建配置中添加 2 个 VCS 触发器,您尝试过吗?

虽然我在 TC 10 上,但如果这真的不起作用,那么我能想到的唯一方法就是创建 2 个单独的构建。:|

于 2017-01-27T12:26:52.430 回答
0

解决方案是修改构建配置 XML。步骤是: 找到 TeamCity 项目文件夹,它是 TeamCity 数据目录的子目录,我的文件夹是 C:\ApplicationData\TeamCity\config\projects。

找到它所在的每个项目子文件夹的构建配置,例如:C:\ApplicationData\TeamCity\config\projects\parentProj_Proj\buildTypes\build_config_name.xml

在这个文件的底部是我找到构建触发器部分的地方,在那里找到当前构建触发器你有一个副本,但记住要更改“build-trigger”元素上的“id”属性。所以我的最终配置如下所示:

<build-triggers>
      <build-trigger id="vcsTrigger" type="vcsTrigger">
        <parameters>
          <param name="branchFilter"><![CDATA[-:*
+:refs/heads/hotfix/hotfix-*
+:refs/heads/develop
+:refs/heads/feature/feature-*]]></param>
          <param name="groupCheckinsByCommitter" value="true" />
          <param name="perCheckinTriggering" value="true" />
          <param name="quietPeriodMode" value="DO_NOT_USE" />
        </parameters>
      </build-trigger>
      <build-trigger id="vcsTrigger1" type="vcsTrigger">
        <parameters>
          <param name="branchFilter"><![CDATA[-:*
+:refs/heads/release/release-*
+:refs/heads/master]]></param>
          <param name="quietPeriodMode" value="DO_NOT_USE" />
        </parameters>
      </build-trigger>
    </build-triggers>

这虽然可能不受支持,但似乎工作得很好。

于 2017-01-27T13:58:03.840 回答