让我们假设我们正在使用Jenkins,Teamcity或其他任何东西在github中构建(CI)每个拉取请求,并在构建成功时合并PR。每个PR必须建立在最新的分支上。想知道人们是如何实现这一目标的吗?
PRs Start Time Jenkins Build Build Finished PR1 (10:00) ---> Building(30 mins) -->10:30 ----> Merged in Develop PR2 (10:05) ---> Building(30 mins) -->10:35 ----> Merged in Develop PR3 (10:10) ---> Building(30 mins) -->10:40 ----> Merged in Develop
我对这种方法有疑问。 PR1在开发分支中合并后(10:30),PR2和PR3不再构建在最新分支上,它们处于开发分支的旧状态(在PR1合并之前)。
在Github中,有一个选项可以确保在合并之前受保护的分支是最新的。 "在合并之前要求分支是最新的"。如果我们选择这个选项,PR2和PR3不能在开发中合并,我们得到更新分支" PR启用按钮,确保PR从开发分支重新定位。
现在PR2和P3在开发分支上重新定位但未在最新代码上验证,因此我们再次构建它们。这需要更多时间来构建每个PR。它就像2到3次构建。
你们是如何在你的组织中实现这一目标的?
答案 0 :(得分:0)
事实:
PR1
PR2
位于经过验证的PR1
PR3
位于经过验证的PR1 + PR2
然后:
如何更改: