我们正在为使用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在主人中添加的测试用例是否会运行
答案 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将检测主分支中的更改并为您更新拉取请求分支。无论如何你都很好。
流程可能如下所示:
查看此信息以获取更多信息:
https://blog.jetbrains.com/teamcity/2013/02/automatically-building-pull-requests-from-github-with-teamcity/