jenkins持续集成springboot

1、可以配置项目标签

PS:这里Default Value值修改为master

2、代码地址,这里并没有拉取制定标签的代码,而是拉取了最新版本代码,如果要拉取指定标签代码需要把*/master修改成$version_tag。

3、Pre Steps与Build,通过Pre Steps修改pom.xml的版本,一次构建一个版本,版本规则自定义。

# 更新pom依赖版本号
version=`awk '/<version>[^<]+</version>/{gsub(/<version>|</version>/,"",$1);print $1;exit;}' pom.xml`
# sed  格式:0.0.1-SNAPSHOT   使用正则分组  
newVersion=`echo $version | sed 's/(.*..*.).*(-.*)/1'$BUILD_NUMBER'2/'`
mvn versions:set -DnewVersion=$newVersion versions:commit

上面是直接使用BUILD_NUMBER变量,并不符合我们的实际要求,正常逻辑是每次读取pom.xml版本号,然后版本号加1,之后再改写pom.xml的版本号(下面示例版本规则是 1.0.3)

# 更新pom依赖版本号
version=`awk '/<version>[^<]+</version>/{gsub(/<version>|</version>/,"",$1);print $1;exit;}' pom.xml`
versionLast=`echo $version | sed 's/.*..*.(.*)/1/'`
let versionLast++
newVersion=`echo $version | sed 's/(.*..*.).*/1'$versionLast'/'`
mvn versions:set -DnewVersion=$newVersion versions:commit

#eval sed -i '0,/$version/s//$newVersion/' pom.xml

4、运行spring boot项目

echo "Stopping SpringBoot Application"
version=`awk '/<version>[^<]+</version>/{gsub(/<version>|</version>/,"",$1);print $1;exit;}' pom.xml`
newVersion=`echo $version | sed 's/(.*..*.).*(-.*)/1'$BUILD_NUMBER'2/'`
pid=`ps -ef | grep osp-ethscan.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
cp -f /root/.jenkins/jobs/etherscan/workspace/target/osp-ethscan-$newVersion.jar /opt/test/osp-ethscan.jar
BUILD_ID=dontKillMe nohup java -jar /opt/test/osp-ethscan.jar > /opt/test/out.log 2>&1 & 

  

版本控制标签:

[root@10 1.0.7]# cat /home/jenkinsShell/jenkins_Pre_Steps_ExecuteShell.sh 
#!/bin/sh
echo "=========================== start update version ========================="
cd $1
# 将变更的内容提交到git仓库
git pull origin master
version=`awk '/<version>[^<]+</version>/{gsub(/<version>|</version>/,"",$1);print $1;exit;}' pom.xml`
echo $version
git add pom.xml
git commit -m "jenkens update pom version"
git tag $version -m "jenkens update pom version"
git push origin $version

echo "=========================== end update version =========================="

  

原文地址:https://www.cnblogs.com/zhangmingcheng/p/11022454.html