不同分支具有不同 "Per-checkin Triggering" 的多个 VCS 触发器
Multiple VCS Trigger with different "Per-checkin Triggering" for different branches
我需要两个基于 banch 过滤器的具有不同每次签入触发规则的 VCS 触发器。
原因:对于 "release-*" 和 "master" 分支,当我合并所有内容时,我不希望每次签入都创建一个构建,但是我在使用任何其他分支时都这样做。我虽然可以通过添加第二个触发器过滤分支来做到这一点,所以它们看起来像这样:
第一个 VCS 触发器,这将构建所有这些分支 "Trigger a build on each check-in" 检查
-:*
+:refs/heads/hotfix/hotfix-*
+:refs/heads/develop
+:refs/heads/feature/feature-*
第二个 VCS 触发器,这将构建所有这些分支 "Trigger a build on each check-in" 未选中
-:*
+:refs/heads/release/release-*
+:refs/heads/master
(请原谅我的绘画技术不是那么棒)
还有其他方法吗?
谢谢
史蒂夫
我找不到如何在单个构建配置上添加 2 个 VCS 触发器,您试过了吗?
虽然我在 TC 10,但如果那真的不起作用,那么我能想到的唯一方法就是创建 2 个单独的版本。 :|
解决方案是修改构建配置 XML。步骤是:
找到您的 TeamCity 项目文件夹,它是 TeamCity 数据目录的子目录,我的是 C:\ApplicationData\TeamCity\config\projects.
在示例下找到它所在的每个项目子文件夹的构建配置:C:\ApplicationData\TeamCity\config\projects\parentProj_Proj\buildTypes\build_config_name.xml
在这个文件的底部是我找到构建触发器部分的地方,在那里找到当前构建触发器你有一个副本,但记得更改 [=20= 上的 "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>
这虽然可能不受支持,但似乎工作得很好。
我需要两个基于 banch 过滤器的具有不同每次签入触发规则的 VCS 触发器。
原因:对于 "release-*" 和 "master" 分支,当我合并所有内容时,我不希望每次签入都创建一个构建,但是我在使用任何其他分支时都这样做。我虽然可以通过添加第二个触发器过滤分支来做到这一点,所以它们看起来像这样:
第一个 VCS 触发器,这将构建所有这些分支 "Trigger a build on each check-in" 检查
-:*
+:refs/heads/hotfix/hotfix-*
+:refs/heads/develop
+:refs/heads/feature/feature-*
第二个 VCS 触发器,这将构建所有这些分支 "Trigger a build on each check-in" 未选中
-:*
+:refs/heads/release/release-*
+:refs/heads/master
(请原谅我的绘画技术不是那么棒)
还有其他方法吗?
谢谢
史蒂夫
我找不到如何在单个构建配置上添加 2 个 VCS 触发器,您试过了吗?
虽然我在 TC 10,但如果那真的不起作用,那么我能想到的唯一方法就是创建 2 个单独的版本。 :|
解决方案是修改构建配置 XML。步骤是: 找到您的 TeamCity 项目文件夹,它是 TeamCity 数据目录的子目录,我的是 C:\ApplicationData\TeamCity\config\projects.
在示例下找到它所在的每个项目子文件夹的构建配置:C:\ApplicationData\TeamCity\config\projects\parentProj_Proj\buildTypes\build_config_name.xml
在这个文件的底部是我找到构建触发器部分的地方,在那里找到当前构建触发器你有一个副本,但记得更改 [=20= 上的 "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>
这虽然可能不受支持,但似乎工作得很好。