zoukankan      html  css  js  c++  java
  • 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 =========================="
    

      

  • 相关阅读:
    PHP 单态设计模式
    五中常见的PHP设计模式
    PHP如何定义类及其成员属性与操作
    thinkphp 中MVC思想
    1.4 算法
    1.3 迭代器
    1.2 容器-container
    1.1 STL 概述
    2.3顺序容器-deque
    2.2 顺序容器-list
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/11022454.html
Copyright © 2011-2022 走看看