TeamCity构建Git/GitHub拉取请求

asa*_*afb 11 git teamcity github

我们有一个TeamCity 7.1安装,可以从GitHub存储库构建所有分支.

GitHub有一个通知挂钩回TeamCity来触发签入时的构建.我们还每隔120秒让TeamCity轮询GitHub来检查更改(如果在签入更改时服务器处于脱机状态).

我们的正常发展遵循一个共同模式:

  1. 从master创建一个分支
  2. 提交到该分支,直到完成功能
  3. 完成后,从master中拉出以合并任何更改并推送到远程
  4. 提交GitHub拉取请求以允许管理员合并到主服务器

一切都在游泳(经过大量搜索以获得正确的配置设置)然而......

上面的过程触发了TeamCity上的几个构建,我想知道它们是否都是必需的.通常情况下,我们最终会:

  • / refs/heads/branch-name的构建
  • / refs/pull/number/head的构建
  • / refs/pull/number/merge的构建

当然,第一个构建是特定分支上的最后一个签入,第二个构建是拉取请求,但第三个构建是什么?

小智 13

第三个构建实际上是最有价值的 - 它是拉请求自动合并的结果(当你按下github上的按钮时会发生合并).


Ser*_* K. 3

你的构建看起来是多余的。在 git 中组织 TeamCity 功能分支构建的更简洁的方法如下:

  1. 组织您的refs/heads/master分支机构的持续集成。120 秒的民意调查在这里是相当合理的。
  2. 为每个分支机构组织夜间构建refs/heads/feature-name。根据我的经验,只有少数功能分支需要 120 秒轮询。

TeamCity 7.1 有一个非常好的自动触发功能分支的功能,因此只需单击几下即可使用分支掩码(如refs/heads/feature-*.

构建拉取请求没有任何意义,因为它们将被主构建覆盖。