前言介绍
本篇文章主要针对于之前的Jenkins在构建分支的时候,进行自动合并其他分支的纠正和专题介绍,如果想要了解更多的说明,可以参考一下官方文档:Jenkins的Git合并官方介绍(英文版)、【Jenkins官方Git插件介绍分析】
合并实现方案一:
例如:Jenkins 配置自动合并release分支到 master 分支
- 本案例介绍如何在Jenkins配置合并到release的内容自动合并到gitlab的master分支。
- 首先需要两个仓库,一个是 gitlab 的仓库,另一个是 Jenkins 的服务。
- Branches to build添加分支,如果需要将release分支合并master,所以就填写release就可以。
Additional Behaviours 添加三个值,一个是 Clean before checkout 这样可以清空仓库,第二个是 Prune stale remote-tracking branches 让本地和远程同步。
- Merge before build 请看图片,设置仓库是哪个,设置推送的分支。
- 为了在用户推送的时候合并,就需要在 Build Triggers 添加 Build when a change is pushed to GitLab. 这样就可以添加 web hook 在打钩之后可以看到下面有一个链接,如下面是我的链接,这个链接会在之后设置到 gitlab 所以暂时需要记下。
- 这里可以通过很多个设置,在 Push Events 执行这个仓库或者在 Accepted Merge Request Events 执行,可以全部打钩。
下面就是 Build 这里可以写编译的内容,我下面执行了一些代码
- 只有在编译成功我才可以让 release 合并到 master 分支,如果编译不成功就不能合并
- 在 Post-build Actions 添加 Git Publisher 功能,第一个是 Push Only If Build Succeeds 也就是在上面的 Build 编译成功之后才会执行。
- 点击 Add Branch 添加一个新的合并分支,需要从 release 合并到 master 就可以和我下面一样写,如果是从 release 合并到 dev 分支就自己在下面写 dev 就可以
填写之后需要勾选 Push events 这样有人上传就可以自动合并 release到master 而不需要自己手动合并
在添加之后可以看到有 Test 按钮,点击可以模拟一个 push 的测试
合并实现方案二:
有一个更好的方案
jenkins构建之前如何自动合并git分支,我有2个构建,用于分支主和生产当我做生产构建时,我想做git merge origin / master,这是Jenkins最新的 Git Plugin支持的。只需在作业配置中的Git的高级设置下将 “Checkout / merge to local branch” 设置为“production”。