jenkins + tomcat + git 自动发布
在上家公司,最开始系统代码是 svn+手动发布(.net)。发布过程麻烦不可靠。
麻烦:
1.每次需要手动把发布包拷贝到指定的服务器,指定的目录下
2.如果有负载的,需要同样的操作好几个机器,手动操作容易落下
3.发布人和服务器网络传输受限
不可靠:
svn 分支管理不方便。每次都是在自己本地保存一次最后发布的版本。然后把要最近调整过的,待发布的代码在整合上去,容易落下文件、代码。
处理hot fix 的时候,代码不好控制
通过台湾同事推荐并且使用 jenkins + git 做代码管理和发布。优势如下:
1.版本控制
git 可以每个人有自己的分支,每个分支未合并到master之前互不干扰
git 上,每次发布后,打一个 tag 标签。如果hot fix 可以直接在指定 tag 上做修改操作
2.jenkins
jenkins 可以整合 git ,再加上一些脚本实现自动发布,只要发布流程设置没问题,基本不会有落下操作的情况。
减少人工操作,网络内容操作,快速准确。开放权限后,普通值班人员都可以操作(建议要有技术岗值班操作,免得出问题后,没法及时处理)
到现在公司后,公司外派我到广州科学城联通客服中心某项目组处理java方面的工作(以前搞.net),svn 做版控。
看到项目组每次发布,都需相关的开发人员晚上在线值班,然后通过手动发布到tomcat 下面,每天晚上一个小发布,一群人在等着,效率不是他理想。
于是建议项目组采用 jenkins+git+tomcat 做代码版控+自动发布,每次发布减少了许多工作量。
最近没啥事情,就把这个大概流程记录下。
重要点:
1.jenkins 需要安装git、tomcat相关的插件
2.jenkins 所在服务器需要安装 maven 相关插件(我们使用这个编译打包)
3.jenkins 需要能够访问到 git/gitlab 服务器
4.jenkins 可以访问、操作 app 服务相关端口、目录
5.需要定时删除前X次的日志,否则次数一多,磁盘就满了
下面上图:
1.新建jenkins 发布任务
2.配置数据源
jenkins git 的 Credentials,自己找其他博文,我这是大概描述下流程
3.构建触发
根据自己需求选择
4.编译打包
5.打包后的操作
注意,此处我是通过 SH 来执行脚本复制文件的,你们可以设置自己的tomcat manager 来发布,看自己需求。
如果是sh 操作,单独执行 sh 文件后,如果sh 中是执行后台操作,将会自动结束,请添加 BUILD_ID=dontKillMe
如果是shell 直接执行 java 命令,则在shell第一行添加: source /etc/profile
处理执行 shell 秒退:如下图: