jenkins实现jar包自动发布和回滚----jenkins实现项目发布回滚

Posted topyxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins实现jar包自动发布和回滚----jenkins实现项目发布回滚相关的知识,希望对你有一定的参考价值。

一、新建项目 

技术图片

技术图片

 

 二、配置项目

技术图片

 

 添加部署和回滚选择

技术图片

 

 三、添加源码管理

技术图片

 

 技术图片

 

 构建触发器 默认即可

四、编写选择代码

技术图片

 

 

case $deploy_env in
    Deploy)
        echo "status: $deploy_env"
        path="${WORKSPACE}/dist"
        if [ -d $path ];then
            echo "The file is already exists!!!"
        else
            mkdir -p $path
        fi
        cd ${WORKSPACE}
        tar czf dist/${JOB_NAME}-${BUILD_NUMBER}.tar.gz * --exclude=dist
        find ${WORKSPACE}/dist -mtime 2 -name "*.tar.gz" -exec rm -rf {} ;
        echo "Completion!!!"
        ;;
    RollBack)
        echo "Status: $deploy_env"
        echo "version: $version"
        file_old=`ls ${WORKSPACE}/dist | grep $version`
        cd ${WORKSPACE}/dist
        cp -R $file_old ${JOB_NAME}-${BUILD_NUMBER}.tar.gz
        ;;
    *)
    exit
        ;;
esac

技术图片

 

 五、发布代码脚本

技术图片

 

[root@yxd-test-cet7 profitassist]# cat profitassist.sh 
#!/bin/sh
#Copy jar to target path
#by author YuXD 2020-03-24
source /etc/profile
BUILD_ID=DONTKILLME #后台执行
date=`date +%Y%m%d`
project_name=profit-assist-0.0.1-SNAPSHOT.jar
pid=$(ps -ef|grep ${project_name}|grep -v grep | awk {print $2})
# 关闭已经启动的jar进程
function stop(){
if [ -n "$pid" ]
  then
      echo "pid进程 :$pid"
      kill -9 $pid  
 else
    echo "进程没有启动"
fi
}
stop
sleep 5s
#发布jar服务
function start(){
  tar -czvf profit-assist-0.0.1-SNAPSHOT.jar.$date profit-assist-0.0.1-SNAPSHOT.jar
  wget http://172.*.*.*:8080/profitassist/target/profit-assist-0.0.1-SNAPSHOT.jar -O profit-assist-0.0.1-SNAPSHOT.jar
  ./startup.sh
  ps -ef|grep ${project_name}
}
start
[root@yxd-test-cet7 profitassist]# cat startup.sh 
#!/bin/bash
nohup java -jar profit-assist-0.0.1-SNAPSHOT.jar &

六、运行jenkins

技术图片

 

PS:在jenkins持续发布中 本人遇到一个问题,还望撸友们相助!

就是在maven打包时候,并不能自动更新项目依赖的jar,第一次更新,jenkins会将jar拉倒本地,而第二次更新jenkins检测到本地有这个包,但并不知道此时jar已更新,因此还是用着之前的老jar包,这样打包就会报出缺少依赖问题

技术图片

 

 

此时则需要手动删除 .m2/repository中相应的依赖包,重新打包方可。

因此,请教撸友们有没有什么地方可以设置,自动检索更新新的依赖jar包!

谢谢大家,希望大家多多指点一下。

以上是关于jenkins实现jar包自动发布和回滚----jenkins实现项目发布回滚的主要内容,如果未能解决你的问题,请参考以下文章

jenkins实现jar包自动发布和回滚----jenkins安装

jenkins实现jar包自动发布和回滚----jenkins安装

k8s在jenkins构建,如何回滚和升级23

Pod 升级和回滚

Jenkins 版本迭代以及回滚

如何使用jenkins部署jar包