我使用GitFlow分支策略。我希望每个项目有3个构建配置:
Beta - 使用分支规范
构建beta / *发布 - 使用分支规范
从master构建请注意使用括号设置我的首选分支名称。我有这3个版本的原因是因为我使用构建配置名称作为构建名称的一部分,所以例如我得到1.2.3-Integration.27格式的构建,最终的数字'27'是一个项目范围共享构建计数器。我还在不同的配置中采取不同的后构建操作,例如发布配置执行部署操作。
作为我称之为“非确定性”的一个例子,我刚刚通过pull请求将一个功能分支合并到了develop中。我在Integration构建配置中构建了一个构建开发分支的构建。但是,即使其分支规范中没有任何内容发生变化,我也可以在其他两个构建配置上构建。这绝对不是我想要的,因为我的发布配置,例如,部署的东西。这是一个突出显示违规构建的屏幕截图:
更新 - 其他信息 以下是“违规构建”的概述 这是触发器配置
我显然不了解TeamCity如何与Git合作。我的印象是,构建配置只应构建属于其分支规范的内容。其他两个来自哪里?当分支规范不包括develop(或refs / heads / develop)时,为什么会触发这些构建?有没有办法阻止这种情况发生?
我已尝试在JetBrains支持论坛上提出这个问题,但我似乎没有任何牵引力,所以我想我会联系StackOverflow社区。 p>
答案 0 :(得分:1)
如果你有一个构建触发器,只要有变化就触发,你就会遇到这种情况。我的项目中有一个非常类似的设置,我通常在触发器构建部分中指定所有分支规范。