git - 如何处理 Jenkins 上提升的冲突分支

标签 git github jenkins promoted-builds

思路是:

  1. 所有开发人员都在他们的功能分支上工作并将它们推送到 github
  2. jenkins 在工作test 上开始构建(由“在 github 上推送”触发)以在这些功能分支上运行单元测试
  3. 一旦他们通过测试,经理就会去 github 做代码审查。
  4. 如果代码审查没问题,那么这个构建被手动提升(提升构建插件)到“通过 QA,准备生产”,在“操作”部分,我们设置“触发/调用其他项目上的构建”来触发一个单独的作业 test-prod 仅将此功能分支 merge 到远程仓库上的 master。

job test 提升构建配置: enter image description here

工作测试产品 SCM配置: enter image description here

所以这里有 2 个问题:

  1. 在第4步,我们有2个冲突的feature分支都通过了code review的情况,第一个提升的分支没问题,但是第二个就会有冲突和失败,有没有办法在之前检测到冲突?我知道 'merge before build' 可以避免冲突,但这需要之前的分支已经被 merge 到远程 master

  2. 在无冲突的情​​况下,每当手动提升触发第二个作业时,总会有一个额外的构建,原因是:“遗留代码启动了这个作业。没有可用的原因信息”,我不知道这是怎么发生的。

另外,不知道这个想法在整个管道方面是否正确,欢迎任何建议!

最佳答案

免责声明:我对 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/

相关文章:

git - 如何使用 git 重置仓库?

Github:推送 pull 请求

java - 如何在githubproject中运行sonarqube分析

c# - 如何使用 ASP .NET Core 设置 Jenkins

json - Jenkins 更新后,readJSON 和 readYaml 在 Jenkins 中停止工作

git merge squash 非连续提交

终端中的 Git 模式

git - 获取远程 git 存储库上的文件/文件树列表

jenkins - 以编程方式创建 jenkins JNLP 从站

git pull origin master,不 pull 检查是否有冲突