为 TeamCity 构建配置选择 Git 分支

9

我希望通过我的CI服务器上的TeamCity完成以下任务。

Master branch commit : Build and Release
Beta branch commit: Build and Release to Crashlytics
All other commits to any other branch: Build

(旁注:由于我们的大多数开发分支可能包含前缀,因此使用“feature-*”分支命名变得困难)
根据这个问题 Select Git branch for TeamCity Build
我在项目设置中创建了一个配置参数 enter image description here 然后是我的VCS根设置 enter image description here 然后我创建了一个构建模板 enter image description here 当我创建构建时,我确保分支名称是正确的 enter image description here 我还尝试过编辑触发器 enter image description here 但是这不起作用,因为当我将提交推送到Beta分支时,
我认为是因为默认的构建是运行所有分支,包括Beta和Master enter image description here 我该如何纠正这个问题?
2个回答

1
我通过与其他开发人员交流并确保所有开发分支使用前缀(在此情况下为XAAI-)来解决了这个问题。然后在我的VCS根设置中进行了相应的更改。

enter image description here

对于每个构建配置中的触发器,我会确保只有在检入该分支时才会触发。

例如,对于QA(Beta构建)。

enter image description here

这是棘手的部分,对于开发分支,我必须提供一个空参数,我不知道为什么(可能是因为某些东西需要检查默认分支,该分支应该是ref/heads/),但无论原因是什么,它都起作用了。

enter image description here

然后最终整个东西看起来像这样。

enter image description here

那个待处理的事情仍然很烦人,但我认为至少它现在按照我的设想工作了。


0

如果您希望只有在推送默认分支时才自动触发构建,您可以向触发器添加分支过滤器,例如:+:<default>

这取决于您是否已正确设置了每个构建配置中的%BranchName%参数。例如,对于您的默认构建,请将%BranchName%参数设置为master。

另外需要注意的是,您仍将看到每个分支的所有待处理更改,但是只有在添加分支过滤器后,当您推送到默认构建时触发器才会运行。如果您想要消除每个分支的待处理更改,您需要为每个配置单独设置vcs根以完全过滤掉这些分支。


如果您使用多个版本控制根,如何在分支之间共享“构建编号”? - SpaceDust__

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接