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

时间:2023-03-10 06:25:47
【linux】【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的配置文件

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

配置jdk安装路径

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

配置maven安装路径

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

2。新建maven项目

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

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

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

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

4。配置源码管理git

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

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

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

5。配置触发器

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

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

gitlab webhook配置

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

6。配置构建环境

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

7。配置启动shell

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

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

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

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

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

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

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

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

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

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

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

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

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