如果存在该SHA1的构建,则阻止TeamCity构建快速合并到master

edd*_*uld 12 git teamcity triggers

使用TeamCity与git组合.
目前,TeamCity设置为" master"作为默认分支.

通常,开发发生在另一个分支(例如" dev")上 - TeamCity设置为监视" dev"的更改并自动构建.

如果DEADBEEF-SOME-SHA已经由TeamCity构建和标记为" dev"的构建1.2.3.4 并且我们快速将git SHA1合并到" master",则TeamCity仍然执行构建 - 因此我们最终DEADBEEF-SOME-SHA被标记为1.2.3.4和1.2. 3.5.

据我所知,制作" dev"默认分支会阻止这种情况.
如果构建已成功完成相同的SHA1,是否有另一种方法可以阻止TeamCity执行构建?

请注意,如果我们直接推送master(并且SHA1在其他分支上不存在/尚未构建)我仍然希望看到构建.

如果可能的话,我想在TeamCity中完全实现这一点 - 没有额外的脚本/文件写入等.

Von*_*onC 5

您可以查询特定SHA1的构建...但您必须知道以前的buildID.

所以我要做的是:

  • 写入每个作业结束时构建的sha1专用文件夹(可由所有代理访问)
  • 如果该sha1文件尚不存在,则仅触发新作业.


edd*_*uld 2

如果您只是希望限制自动触发构建的分支,请为 VCS 触发器设置分支过滤器:

项目设置 => 触发器 => VCS 触发器(编辑)=> 分支过滤器

将分支过滤器设置为

+:dev 
Run Code Online (Sandbox Code Playgroud)

那么(即使“master”是默认分支)构建只会在开发上自动触发。仍然可以在其他分支上执行临时构建(假设 VCS 根允许)