使用Git

时间:2015-05-05 17:37:46

标签: git teamcity git-flow buildconfiguration

我使用GitFlow分支策略。我希望每个项目有3个构建配置:

  • 集成 - 使用分支规范从develop,feature / *和hotfix / *构建
    • +:参/头/(显影)
    • +:参/头/特征/(*)
    • +:参/头/显影/(*)
    • +:RES /头/(修复程序/ *)
  • Beta - 使用分支规范

    构建beta / *
    • +:refs / heads /(release / *)
  • 发布 - 使用分支规范

    从master构建
    • +:参/头/(主)

请注意使用括号设置我的首选分支名称。我有这3个版本的原因是因为我使用构建配置名称作为构建名称的一部分,所以例如我得到1.2.3-Integration.27格式的构建,最终的数字'27'是一个项目范围共享构建计数器。我还在不同的配置中采取不同的后构建操作,例如发布配置执行部署操作。

作为我称之为“非确定性”的一个例子,我刚刚通过pull请求将一个功能分支合并到了develop中。我在Integration构建配置中构建了一个构建开发分支的构建。但是,即使其分支规范中没有任何内容发生变化,我也可以在其他两个构建配置上构建。这绝对不是我想要的,因为我的发布配置,例如,部署的东西。这是一个突出显示违规构建的屏幕截图: enter image description here

更新 - 其他信息 以下是“违规构建”的概述 enter image description here 这是触发器配置 enter image description here

我显然不了解TeamCity如何与Git合作。我的印象是,构建配置只应构建属于其分支规范的内容。其他两个来自哪里?当分支规范不包括develop(或refs / heads / develop)时,为什么会触发这些构建?有没有办法阻止这种情况发生?

我已尝试在JetBrains支持论坛上提出这个问题,但我似乎没有任何牵引力,所以我想我会联系StackOverflow社区。

1 个答案:

答案 0 :(得分:1)

如果你有一个构建触发器,只要有变化就触发,你就会遇到这种情况。我的项目中有一个非常类似的设置,我通常在触发器构建部分中指定所有分支规范。