最近都好忙,需求太多了,干不完,加上最近作息时间的调整,都没时间写博客了,趁着这两天稍微有点时间,想撸一发;
其实在写的博客有好几篇,但都是陆陆续续的,本来想继续写之前的,突然想起半个月前,同学提出,能不能在开发提tag时自动打包?
之前发布过一篇项目流程规范,目前的项目都在遵守这个规范,而研发每次有改动过代码的时候,都会提测,而提测就相当于提tag,这个tag的概念不说了,就是基于当前产品分支重新拉的分支,tag的格式如下图;
而测试拿到这个tag后,就需要去到jenkins打包,要输入一堆参数,然后等待打包结果;
有时候,研发勤奋点,一天提多次tag,测试就需要多次去打包,测试同学觉得太麻烦了,因此就提出一个想法,能不能在开发提tag时自动打包?
能,必须能,没有做不到的事情;
分解
做事之前,要先想想要做什么?
搭建jenkins环境及安装对应插件
jenkins打通到gitlab
触发任务
想了下,大致就这3步,那就来一起做吧;
搭建jenkins
为了测试,jb就用了自己的阿里云服务器从头开始搭建一遍,具体搭建过程不说明,之前写的一篇文章有提及到,直接对照操作就好;
步骤
说明
安装Java
sudo yum install java
安装jenkins
yum install jenkins
启动jenkins
service jenkins start
安装插件
完
注意
修改jenkins端口
jenkins默认端口是8080,可能会跟别的软件冲突,因此建议修改下端口;
进入jenkins配置文件
vi /etc/sysconfig/jenkins
打开后,找到JENKINS_USER跟JENKINS_PORT这两项进行修改即可;
修改成root跟具体端口保存退出即可;
这时候,直接输入主机IP+刚设置的端口就好啦;
阿里云开放端口权限
上面访问ip+端口,有可能打不开链接,因为阿里云对端口做了限制,因此需要开放端口;
登录阿里云,首页右上找到控制台;
找到云服务器ECS
点击实例,找到该实例的安装组配置
点击规则说明,新增即可;
如果是按照上面的文档来,安装完插件,创建完用户后,就应该进入到首页,会显示如下内容,至此,jenkins环境搭建就完啦~!
对了,jenkins的目录在这里:
/var/lib/jenkins
jenkins打通到gitlab
公司的代码仓库是用gitlab,因某种原因,就开放公网啦,那jb就在gitlab新建一个jbtest项目;
如果有小伙伴说,没有gitlab怎么办?没关系,可以用github代替,至于github相关的配置,可以查看该文章:git介绍及GitHub配置教程
jenkins安装gitlab
既然确定是要用jenkins+gitlab,那就先在jenkins上安装下gitlab插件吧;
点击jenkins首页,有个系统管理按钮;
点击后右侧会显示内容,下滑,点击插件管理;
进入到插件管理界面,就看到updates等4个栏目,那点击Available,右侧输入gitlab,然后找到GitLab跟GitLab Hook,勾选,点击底部的install即可;
test项目有了,gitlab的插件也安装了,那我们就在jenkins新建一个job吧,输入了项目名称,就进入到设置项;
丢弃旧的构建
这里的丢弃旧的构建,可选,但是习惯选择7天,,最大保留300个;
原因是,jenkins每次构建都会生成一个历史构建记录及对应的产物,如果公司有100个产品,每天自动打包10次,一天就有1000个产物,服务器磁盘空间是个问题,因此设置个7天,设置个最大数,定时删除即可;
持构建的天数:根据你所填写的天数来保存构建记录
保持构建的最大个数:有几条构建记录就保存几条
发布包保留天数:发布的产物保存的天数
发布包最大保留#个构建:发布了多少个产物就保存多少个
上面的丢弃旧构建不是要点,继续;
继续下滑,会发现Source Code Management,中文是源码管理,而我们的代码是存放到gitlab的,因此就选择git了,点击后如下图展开;
这里有小伙伴可能有疑问,既然是放gitlab,为啥不是