我需要两个基于banch过滤器的不同Per-Checkin触发规则的VCS触发器。
原因:对于"发布 - *" &安培; "主"当我合并所有内容时,我不希望每个签入创建一个构建,但是当我使用任何其他分支时,我会这样做。我虽然可以通过添加过滤分支的第二个触发器来实现这一点,所以它们看起来像这样:
第一个VCS触发器,这将使用"构建所有这些分支;在每个签入时触发构建"检查
-:*
+:refs/heads/hotfix/hotfix-*
+:refs/heads/develop
+:refs/heads/feature/feature-*
第二个VCS触发器,这将使用"构建所有这些分支;在每个签入时触发构建"未选中
-:*
+:refs/heads/release/release-*
+:refs/heads/master
(请原谅我不那么史诗般的绘画技巧)
我还有其他办法吗?
由于
史蒂夫
答案 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>
这虽然可能不受支持似乎工作得很好。