我想在我的CI框中通过teamcity完成以下操作。
Master branch commit : Build and Release
Beta branch commit: Build and Release to Crashlytics
All other commits to any other branch: Build
(旁注,因为我们的大多数开发分支可能包含也可能不包含前缀,因此很难使用"功能 - *"分支命名)
关注此问题Select Git branch for TeamCity Build
我在项目设置中创建了配置参数
然后
我的VCS根设置
然后我创建了一个构建模板
当我创建构建时,我确保分支名称正确
我也试过编辑触发器
当我将提交推送到Beta分支
时,这怎么回事?我认为因为ref/heads/*
默认构建正在运行所有分支
和Beta和Master显示"待定"
我该如何纠正?
答案 0 :(得分:1)
我通过与其他开发人员交谈并确保所有开发分支都使用前缀来解决问题,在这种情况下XAAI-
然后在我的VCS根设置
中对于每个构建配置中的触发器,我确保仅在签入该分支时触发它。
例如QA(Betabuild)
这是棘手的部分,对于开发分支我必须给出一个空参数,我不知道为什么(也许是因为某些东西需要检查默认分支,它应该是ref / heads / )但不管它是什么原因。*
然后终于整个事情看起来像这样
这个悬而未决的事情仍然令人讨厌,但我认为至少它正如我现在设想的那样工作。
答案 1 :(得分:0)
如果您希望构建仅在推送默认分支时自动触发,则可以向触发器添加分支过滤器,如+:<default>
。
这取决于您已正确设置每个构建配置中的%BranchName%参数的假设。 IE,对于您的默认构建,使%BranchName%参数= master。
作为旁注,您仍会看到每个分支的所有挂起更改,但只有在添加分支过滤器时才推送到默认构建时,触发器才会运行。如果要删除每个分支的挂起更改,则需要为每个配置设置vcs root specfic以过滤掉所有分支。