【问题标题】:TeamCity + GitHub (Build Config per branch)TeamCity + GitHub(每个分支构建配置)
【发布时间】:2016-11-11 07:59:34
【问题描述】:

TeamCity 设置:

项目(中心项目)

  • 构建配置(主分支)
  • 构建配置(开发分支)

VCS(GitHub) 设置(回购:CenterProj):

  • 主分支
  • 开发分支

网站设置:

  • dev.centerproj(与dev分支相关)
  • qa.centerproj(与master分支相关)

我还没有弄清楚如何让 1 个 VCS Root 连接进入 CenterProj 存储库,然后根据提交/合并触发 2 个构建配置到它们各自的分支。

  • 示例:提交代码到 Dev 分支,TC 触发 Build Configuration(Dev) 并输出到 dev.x。我认为将该提交合并到 Master,然后触发 Build Configuration(Master) 输出到 qa.x。

到目前为止,当我提交/合并到 master 或提交/合并到 Dev 时,我正在等待 dev 上的持续“待处理”构建。

建议?

【问题讨论】:

  • 是否有理由为每个分支使用单独的构建配置(他们是否执行不同的步骤?)您应该能够拥有一个构建配置和一个 VCS 根目录,并在 VCS 根目录中使用分支规范监控多个分支 - 这可以触发在同一个 Git 存储库中不同分支的构建。
  • @EvolveSoftwareLtd 我的印象应该是可行的。构建是完全相同的,只是目的地不同。一个去 dev.x,另一个去 qa.x。我在根目录中尝试了分支规范,因此它同时监控 Master 和 Dev 分支。但仍然在任一分支提交时,两个构建配置都会启动。

标签: git github version-control teamcity teamcity-9.0


【解决方案1】:

您需要为每个构建配置指定一个触发规则,并在其中限制哪个分支将触发您的构建。至于“待定”更改,它们将出现在两个构建配置之上,因为您共享相同的 VSC 根目录,无需担心。

  1. 在第一个屏幕截图中,您的 VSC 配置,将您的分支规范设置为“+:refs/heads/*”
  2. 在第二个屏幕截图中,您已经在“分支过滤器”中有一个值,只需将其设置为“+:dev”
  3. 在最后一个屏幕截图中,将“分支过滤器”设置为“+:master”

【讨论】:

  • imgur.com/a/WlrMO - 显示配置相册。在触发规则中,没有设置分支的选项,只有根和文件通配符。
  • 在第一个屏幕截图中,您的 VSC 配置,将您的分支规范设置为“+:refs/heads/*” 在第二个屏幕截图中,您已经在“分支过滤器”中设置了一个值将其设置为“+:dev”,并在最后一个屏幕截图中将“分支过滤器”设置为“+:master”。应该这样做。
  • 这似乎已经解决了这个问题。每当任何一个提交提交时,它都会在两个分支上显示“待处理”,但我认为这不会消失。
  • 对,“待定”只是意味着任何分支中的源代码管理都有变化。
  • 感谢您的澄清,我还是 git 和 CI 系统的新手,来自 SVN + 手动构建/部署。
猜你喜欢
  • 1970-01-01
  • 2012-11-08
  • 2016-04-04
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 2011-10-16
  • 1970-01-01
相关资源
最近更新 更多