多个VCS触发器具有不同的" Per-checkin触发"对于不同的分支

时间:2017-01-27 10:22:27

标签: teamcity teamcity-9.1

我需要两个基于banch过滤器的不同Per-Checkin触发规则的VCS触发器。

原因:对于"发布 - *" &安培; "主"当我合并所有内容时,我不希望每个签入创建一个构建,但是当我使用任何其他分支时,我会这样做。我虽然可以通过添加过滤分支的第二个触发器来实现这一点,所以它们看起来像这样:

第一个VCS触发器,这将使用"构建所有这些分支;在每个签入时触发构建"检查

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

第二个VCS触发器,这将使用"构建所有这些分支;在每个签入时触发构建"未选中

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

enter image description here

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

我还有其他办法吗?

由于

史蒂夫

2 个答案:

答案 0 :(得分:0)

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

虽然我在TC 10上,但如果这真的不起作用那么我认为只是创建2个独立的构建。 :|

答案 1 :(得分: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>

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