Teamcity构建在每个git commit vs build on pull请求上

时间:2016-03-07 06:29:31

标签: git teamcity

我们正在为使用git的项目建立teamcity。关于我们是否应该在每次提交或每次拉取请求上触发构建,我们都会讨论这个问题。

如果我推送一个分支说A,并且我们已经在master上配置了pull请求,那么构建是否会触发合并代码的显示方式,或者只是构建分支?

让我们假设我们已经配置了我们的团队城市来构建每个拉取请求

现在让我说我有一个分支主人,开发人员A检查分支ftb_A。创建一个新的测试用例并提交。开发人员代码尚未合并到主人。 Develope B创建了一个新的分支ftb_B他还创建了新的测试用例。现在开发人员A推动分支并提出拉取请求,因此构建运行由开发A运行添加的测试用例。现在合并了来自开发人员A的拉取请求,并且现在可以在master中使用新创建的tesr案例。

现在开发人员B也推动了他的分支,但他还没有重新设置他的分支,即开发人员A添加的测试用例在brach ftb_B中不可用。现在开发人员B提出了拉取请求。因此构建被触发。现在我的问题是,当开发人员B提出的拉取请求触发构建时,开发人员A在主人中添加的测试用例是否会运行

1 个答案:

答案 0 :(得分:1)

虽然没有说明,但我会假设你在这里使用GitHub。

简而言之:是的,只要将更改推送到master,ftb_B的pull请求就会更新。但是,您必须在拉请求分支上触发构建,而不是在ftb_B本身上触发。

解释:当创建来自ftb_B的pull请求时,GitHub将为您生成一个新的(隐藏)分支,其中包含从ftb_B合并到master的tip的更改。这使您可以查看更改,针对它运行TeamCity构建,并在接受拉取请求之前执行您可能需要的任何其他步骤。如果在ftb_B创建拉取请求之前接受来自ftb_A的拉取请求 ,则这些更改将自然地包含在拉取请求分支中。如果从ftb_B创建拉取请求>后接受来自ftb_A的拉取请求,GitHub将检测主分支中的更改并为您更新拉取请求分支。无论如何你都很好。

流程可能如下所示:

  1. ftb_A已创建拉取请求
  2. ftb_A由GitHub自动创建的拉取请求分支
  3. ftb_B已创建拉取请求
  4. ftb_B由GitHub自动创建拉取请求分支
    • 此分支此时包含来自ftb_A的更改
  5. ftb_A拉请求已接受
  6. master已更新
  7. ftb_B拉取请求分支由GitHub自动更新
    • 现在来自ftb_A的更改将反映在拉取请求分支
  8. 查看此信息以获取更多信息:
    https://blog.jetbrains.com/teamcity/2013/02/automatically-building-pull-requests-from-github-with-teamcity/