思路是:
- 所有开发人员都在他们的功能分支上工作并将它们推送到 github
- jenkins 在工作test 上开始构建(由“在 github 上推送”触发)以在这些功能分支上运行单元测试
- 一旦他们通过测试,经理就会去 github 做代码审查。
- 如果代码审查没问题,那么这个构建被手动提升(提升构建插件)到“通过 QA,准备生产”,在“操作”部分,我们设置“触发/调用其他项目上的构建”来触发一个单独的作业 test-prod 仅将此功能分支 merge 到远程仓库上的 master。
job test 提升构建配置:
工作测试产品 SCM配置:
所以这里有 2 个问题:
在第4步,我们有2个冲突的feature分支都通过了code review的情况,第一个提升的分支没问题,但是第二个就会有冲突和失败,有没有办法在之前检测到冲突?我知道 'merge before build' 可以避免冲突,但这需要之前的分支已经被 merge 到远程 master
在无冲突的情况下,每当手动提升触发第二个作业时,总会有一个额外的构建,原因是:“遗留代码启动了这个作业。没有可用的原因信息”,我不知道这是怎么发生的。
另外,不知道这个想法在整个管道方面是否正确,欢迎任何建议!
最佳答案
免责声明:我对 git 一无所知。
根据 this ,最好的做法是使用rebase
。由于我不熟悉 git,所以我无法告诉您如何在 Jenkins 上设置 rebase
。
这里还有另一张海报也有 git 问题,“遗留代码启动了这项工作”触发了额外的构建: Legacy code started this job. No cause information is available .
关于git - 如何处理 Jenkins 上提升的冲突分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23273438/