环境介绍: 本文基于第一篇自动代码更新环境,未安装jenkins gitlab,参考第1篇
jenkins需安装 Maven Integration plugin 插件
wget http://updates.jenkins-ci.org/download/plugins/maven-plugin/3.4/maven-plugin.hpi
下载后需要在web界面上进行上传安装
jenkins配置
1、新建一个maven任务,丢弃旧的构建为7天
2、添加gitlab上项目地址及验证方式,选择构建的分支。
3、选择构建触发器类型,我这里选择当gitlab有更新时进行构建。并在高级里生成 secret token.
4、构建的pom文件路径和构建命令参数,以当构建成war成功后,执行相应的自动化更新脚本命令
#!/bin/bash CODE_DIR="/var/lib/jenkins/workspace/carespay/target/" #项目目录 DATE_TIME=`date +%Y-%m-%d-%H-%M-%S` #时间格式 DIR_NAME=carespay-${DATE_TIME} TAR_NAME=$DIR_NAME.war #打包后的名字 WEB_ADDR=192.168.10.227 #web服务器地址 WEB_DIR="/usr/local/tomcat5/webapps" #web服务器站点目录的上一级 "/usr/local/tomcat1/webapps" WEB_NEWDIR_NAME=web-${DATE_TIME} #web服务器新建的站点目录名字 #进入到项目目录并打包代码 tarcf_code(){ cd $CODE_DIR && mv carespay-ms.war /opt/$TAR_NAME } #拷贝到web服务器的站点目录的上一级 scp_code(){ scp /opt/$TAR_NAME $WEB_ADDR:$WEB_DIR } #连接web服务器备份旧版代码 tarxf_code(){ ssh $WEB_ADDR "cd $WEB_DIR && mv carespay* ../back/ " } #将新建的站点目录与html站点目录做一个软链接 ln_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf new && ln -s $DIR_NAME new" } #重启tomcat reboot(){ ssh $WEB_ADDR "cd $WEB_DIR && sh reboot.sh && sleep 1m" } #删除旧代码 del_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf $TAR_NAME" } main(){ tarcf_code; tarxf_code; scp_code; reboot; ln_code; } main