2 gitlab+jenkins maven自动打包更新

环境介绍: 本文基于第一篇自动代码更新环境,未安装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+jenkins maven自动打包更新_第1张图片

 

2 gitlab+jenkins maven自动打包更新_第2张图片

 

2、添加gitlab上项目地址及验证方式,选择构建的分支。

2 gitlab+jenkins maven自动打包更新_第3张图片

 

 3、选择构建触发器类型,我这里选择当gitlab有更新时进行构建。并在高级里生成 secret token.

2 gitlab+jenkins maven自动打包更新_第4张图片

 

 4、构建的pom文件路径和构建命令参数,以当构建成war成功后,执行相应的自动化更新脚本命令

2 gitlab+jenkins maven自动打包更新_第5张图片

 

 

#!/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
自动化代码更新脚本
#!bin/bash
#手动重启tomcat5

tid=$(ps -ef |grep tomcat5 |grep -v grep |awk  '{print $2}')

kill -9 $tid

sh /usr/local/tomcat5/bin/startup.sh

echo `date`  $tid "tomcat5 已重启" >>../reboot.log
192.168.10.227 tomcat重启脚本

gitlab设置

1、创建一个真实项目,从git克隆真实代码过来。

2、项目--设置---集成,添加jenkins项目地址和token成为一个绑定的Webhooks。

2 gitlab+jenkins maven自动打包更新_第6张图片

 

 3、gitlab上用webide模拟一下更新代码,查看jenkins构建状态和10.227tomcat是否构建成功。

2 gitlab+jenkins maven自动打包更新_第7张图片

 

 2 gitlab+jenkins maven自动打包更新_第8张图片

 

 2 gitlab+jenkins maven自动打包更新_第9张图片

 

2 gitlab+jenkins maven自动打包更新_第10张图片

 

 

可以看到成功自动构建,其中还有很多需要优化的地方,如有更好的建议,欢迎大家留言~~~

 

4、如果有报jdbc这类jar包无法下载错误,直接拷贝一个jar到相应的目录,因为这类jar无法自动下载成功

[root@xfg 11.2.0.3]#ls
ojdbc6-11.2.0.3.jar  ojdbc6-11.2.0.3.jar.lastUpdated  ojdbc6-11.2.0.3.pom.lastUpdated
[root@xfg 11.2.0.3]#pwd
/root/.m2/repository/com/oracle/ojdbc6/11.2.0.3

你可能感兴趣的:(2 gitlab+jenkins maven自动打包更新)