【问题标题】:Select Git branch for TeamCity Build Configuration为 TeamCity 构建配置选择 Git 分支
【发布时间】:2016-04-04 21:36:25
【问题描述】:

我想在我的 CI 框中通过 teamcity 完成关注。

Master branch commit : Build and Release
Beta branch commit: Build and Release to Crashlytics
All other commits to any other branch: Build

(旁注,因为我们的大多数开发分支可能包含也可能不包含前缀,因此很难使用“feature-*”分支命名)

关注这个问题Select Git branch for TeamCity Build

我在我的项目设置中创建了一个配置参数

然后

我的 VCS 根设置

然后我创建了一个构建模板

当我创建构建时,我确保分支名称是正确的

我也尝试过编辑触发器

这是怎么回事,因为当我将提交推送到 Beta 分支时

我认为是因为ref/heads/* 默认构建正在运行所有分支

Beta 和 Master 显示“Pending”

我该如何纠正这个问题?

【问题讨论】:

    标签: github build continuous-integration teamcity teamcity-9.0


    【解决方案1】:

    我通过与其他开发人员交谈并确保所有开发分支都使用前缀来解决问题,在本例中为 XAAI-

    然后在我的 VCS 根设置中

    对于每个构建配置中的触发器,我确保仅在签入该分支时触发它。

    例如用于 QA(Betabuild)

    这是棘手的部分,对于开发分支,我必须提供一个空参数,我不知道为什么(可能是因为需要检查默认分支,它应该是 ref/heads/ em>) 但不管它工作的原因是什么。*

    然后最后整个事情看起来像这样

    那个待处理的事情仍然很烦人,但是,我认为至少它正在按照我现在的设想工作。

    【讨论】:

      【解决方案2】:

      如果您希望构建仅在推送到默认分支时自动触发,您可以向触发器添加分支过滤器,如 +:<default>

      这取决于您在每个构建配置中正确设置了 %BranchName% 参数的假设。 IE,对于您的默认构建,使 %BranchName% 参数 = master。

      附带说明,您仍然会看到每个分支的所有待处理更改,但如果您添加分支过滤器,触发器只会在您推送到默认构建时运行。如果您想摆脱每个分支的未决更改,您需要为每个配置设置您的 vcs root 特定以过滤掉所有分支。

      【讨论】:

      • 如果你做多个 vcs 根,你如何在分支之间共享Build Number