使用TeamCity与git组合 .
目前,TeamCity设置为“ master
”作为默认分支 .
通常,开发在另一个分支上进行(例如“ dev
") - TeamCity is set to watch for changes on " dev
”并自动构建 .
如果 DEADBEEF-SOME-SHA
已由TeamCity在“ dev
" and we fast-forward merge that git SHA1 to " master
”上构建并标记为版本1.2.3.4,则TeamCity仍会执行构建 - 因此我们最终将 DEADBEEF-SOME-SHA
标记为1.2.3.4和1.2.3.5 .
据我所知,将“ dev
”设为默认分支可以防止这种情况发生 .
如果构建已成功完成相同的SHA1,是否有另一种方法可以阻止TeamCity执行构建?
请注意,如果我们直接推送到 master
(并且SHA1没有构建),我仍然希望看到构建 .
I'd like to achieve this entirely in TeamCity if possible - no additional scripts/writing of files etc etc .
3 回答
您可以查询特定SHA1的构建...但是您have to know your previous buildID for that .
所以我要做的是:
如果该sha1文件尚不存在,则
也许我错过了一些东西
如果在您的仓库中标记了提交,则在开始新构建之前,您可以检查头部提交是否尚未标记:
如果您只想限制自动触发构建的分支,请为VCS触发器设置分支过滤器:
项目设置=>触发器=> VCS触发器(编辑)=>分支过滤器
将分支过滤器设置为
然后(即使“master”是默认分支)构建只会在dev上自动触发 . 仍然可以在其他分支上执行ad-hoc构建(假设VCS root允许它)