Jenkins 配置自动合并 release 分支到 master 分支
本文告诉大家如何在 Jenkins 配置合并到 release 的内容自动合并到 gitlab 的 master 分支
首先需要两个仓库,一个是 gitlab 的仓库,另一个是 Jenkins 的仓库
先在 Jenkins 仓库做配置,首先设置 Source Code Management 选择自己需要的仓库和设置好的账号
然后在 Branches to build 添加分支,这里需要将 release 合 master 所以就填写 release 就可以
在 Additional Behaviours 添加三个值,一个是 Clean before checkout 这样可以清空仓库,第二个是 Prune stale remote-tracking branches 让本地和远程同步。
注意,第二个 Prune stale remote-tracking branches 很重要,如果有小伙伴上传了这样两个分支
t/lindexi
t/lindexi/github
那么即使小伙伴在上传第一个分支之后,删除了第一个分支再上传第二个分支,可能 Jenkins 也无法加载
第三个就是 Merge before build 请看图片,设置仓库是哪个,设置推送的分支
为了在用户推送的时候合并,就需要在 Build Triggers 添加 Build when a change is pushed to GitLab. 这样就可以添加 web hook 在打钩之后可以看到下面有一个链接,如下面是我的链接,这个链接会在之后设置到 gitlab 所以暂时需要记下
https://newci.gz.lindexi.cn/project/lindexi/github_merge_release_to_dev
这里可以通过很多个设置,在 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 就可以
点击保存就设置完成,下面就是设置 gitlab 让 gitlab 可以支持 Jenkins 推送
点击设置成员,添加 Jenkins 成员
点击 Integrations 添加 webhook 这里需要填写刚才 Jenkins 的链接,我的链接是 https://newci.gz.lindexi.cn/project/lindexi/github_merge_release_to_dev 大家可不要没事就来攻击我的服务器
填写之后需要勾选 Push events 这样有人上传就可以自动合并 release 到 master 而不需要自己手动合并
在添加之后可以看到有 Test 按钮,点击可以模拟一个 push 的测试
点击测试看 Jenkins 是否自动执行,如果有就是设置成功
可能因为合并的 master 分支没有推送,需要点击 repository 设置 Protected Branches 允许 maintainers 推送,设置 Jenkins 的账号是 maintainers 这样就可以推送
可能这时会发现没有 GitLab: This deploy key does not have write access to this project
可以在 repository 设置 Deploy Keys 请看下面
具体设置请看 Using GIT deploy key in Jenkins
使用jenkins+gitlab进行CI - haungtengxiao
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
Jenkins 配置自动合并 release 分支到 master 分支的更多相关文章
- jenkins配置自动发送邮件,抄送
1.安装插件.系统管理-安装插件:可选插件:搜索Email Extension 2.设置全局变量.系统管理-系统设置:a.Jenkins Location 设置发送方邮件--- b.Extended ...
- 使用其他分支替换master分支
在提交混乱的时候, 导致master分支和远程仓库完全一致的时候,这时候解决这种问题可以创建一个新的分支, 再合并到master分支, 像这样: git checkout seotweaks git ...
- git新建分支没有master分支,其他分支也看不到
git checkout -b dev git新建dev分支,发现切换到了dev分支,但是master分支没有了 git branch和git branch -a 都没有任何反应,看不到其他分支, g ...
- Jenkins配置自动发送邮件,成功!
Jenkins自动发送邮件配置: 打开"系统管理"--"系统设置" 在"Jenkins Location"设置系统管理员地址(重要:不能省略 ...
- Jenkins配置自动打包 -- 遇到的坑
1.把gradle路径设为本地路径 Jenkins部署在远程linux服务器上,使用git将代码下载到服务器路径下后,无法使用gradle命令 因为默认配置都是gradle同步时 实时从网上下载,进入 ...
- jenkins配置自动发送邮件
1.开通QQ的SMTP服务,需要发一条短信,qq会给你一个密码(不是你的QQ邮箱密码哦) 2.安装 Email Extension Plugin 插件 3.进入系统管理--系统设置 3.1按照如下图设 ...
- jenkins配置自动部署java程序
任务背景 该项目包含4个程序包:a.jar,b.jar,c.jar,d.jar,每次启动前需要修改程序中的配置文件(修改数据源配置),然后按照先后顺序启动. 任务目标 1.利用jenkins拉取代码, ...
- [Jenkins] Jenkins配置自动构建时间代表意义
- jenkins配置自动执行sql脚本
shell脚本: bigsql="select big_version,small_version from d0mstore.db_current_version order by big ...
随机推荐
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...
- asp.net ajax客户端框架如何调用Page Method
asp.net ajax客户端框架如何调用Page Method 1:欲调用的页面方法必须声明为公有(Public)2:该方法必须为静态方法(static)3:该方法必须添加[System.Web.S ...
- python系列之(5)PyMySQL的使用
简介 PyMySQL是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中是使用mysqldb. 安装 pip3 install pymysql 创建连接 #!/usr ...
- 人生苦短,LET'S GO! GO语言目录
1.Golang开山篇,GO就是NB! 1-1.go开发工具安装 2.go-人生第一个go程序和基本语法 3.go-流程控制 4.go-函数 5.go-流程控制 6.go-复合类型 7.go-面向对象 ...
- hdu5444 乱搞 长春网赛
可以暴力. #include<iostream> #include<cstring> #define maxn 1100 using namespace std; int a[ ...
- POJ 2632 Crashing Robots (模拟 坐标调整)(fflush导致RE)
题目链接:http://poj.org/problem?id=2632 先话说昨天顺利1Y之后,直到今天下午才再出题 TAT,真是刷题计划深似海,从此AC是路人- - 本来2632是道略微恶心点的模拟 ...
- oracle Sql语句分类
dml语句:数据操作语句[insert,update,delete] ddl语句:数据定义语言[create table,drop table] dql语句:数据查询语句[select] dtl语句: ...
- 重磅课程|《CNCF x Alibaba 云原生技术公开课》正式开讲!
到底什么是“云原生”?云原生与 CNCF.Kubernetes 是什么关系?作为云计算时代的开发者和从业者,我们该如何在“云原生”的技术浪潮中站稳脚跟,将云原生落地.实现个人的自我升级呢? 201 ...
- HZOJ 巨神兵
60pts: 每个DAG的拓扑序是唯一的,所以考虑将DAG分层.f[i][j]记录当前选择的节点状态是i,最后一层的节点状态为j(dep取最大). 初始状态:$f[i][i]=1;i\in [1,1& ...
- 前端学习☞jquery
一 什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 j ...