【Llinux】【jenkins】自动化运维四 整合gitlab、docker发布java项目

jenkins发布java项目

过程参考发布vue项目。https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异。

vue建立的是Freestyle project,构建环境选择node

java建立的是maven project,构建环境使用maven

1。配置全局工具中maven

maven及maven私服安装参考:https://www.cnblogs.com/jxd283465/p/11548593.html

配置maven的配置文件

配置jdk安装路径

 配置maven安装路径

2。新建maven项目

 3。配置项目描述、git参数

 

 4。配置源码管理git

 如果使用sonar插件一定要配置Name

 Branch Specifier为上方参数化构建的name,$表示调用参数

 5。配置触发器

当提交代码到gitlab时,自动触发jenkins自动发布

gitlab webhook配置

 

 6。配置构建环境

 7。配置启动shell

勾选 “Run only if build succeeds”,当项目构建成功执行shell

 

cd /home/jenkins/.jenkins/workspace/MingByteSiteApi
bash /home/jenkins/jenkins.sh 192.168.8.10:5000/mingbytesiteapi MingByteSiteApi
mvn package  -DskipTests 

mvn dockerfile:build
echo '================开始推送镜像================'
sudo docker push 192.168.8.10:5000/mingbytesiteapi:latest #推送镜像,镜像文件已经在前面的mvn步骤打好了
echo '================结束推送镜像================'

sudo docker run -d --name MingByteSiteApi -p:8089:8089 192.168.8.10:5000/mingbytesiteapi
echo "finished!" 

 jenkins.sh

t=`sudo docker ps | grep $1|awk '{print  $1}'|sed 's/%//g'`;
b=``;
if [ $t ];
then
sudo docker stop  $t
echo "停止容器成功"
sudo docker rm $t
echo "删除容器成功"
else
echo "首次部署";
fi

tagnum=`git tag | wc -l`;
tag=(`git tag`)
a=0;
echo $tagnum
until [ $tagnum -lt 3 ]
do
   echo $a 删除tag:${tag[$a]}
   git tag -d ${tag[$a]}
   git push $2 :refs/tags/${tag[$a]}
   a=`expr $a + 1`
   tagnum=`expr $tagnum - 1`
done

8。集成sonar代码审查

整合sonar代码审查参考:https://www.cnblogs.com/jxd283465/p/11548590.html

 

 9。整合tag打包备份、整合邮件提醒

整合tag备份参考:https://www.cnblogs.com/jxd283465/p/11548589.html

整合邮件提醒参考:https://www.cnblogs.com/jxd283465/p/11548580.html

 

 

 

原文地址:https://www.cnblogs.com/jxd283465/p/11548576.html