首页 > 编程知识 正文

jenkins回滚git代码,jenkins回退上个版本

时间:2023-05-04 00:43:14 阅读:151702 作者:1494

系统版本ubuntu 20.4 LTS WSLtomcat版本Apache-Tomcat-8.5.30 Jenkins.war版本2.313Java1.8.0Maven3.6.3Java、maven 这里使用ubuntu maven

安装JDK tar-zxvf JDK-8u 221-Linux-x64.tar.gz-c/usr/local/#将JDK解压缩到/usr/local,然后在/etc/profile文件的底部

export Java _ home=/usr/local/JDK1.8.0_ 221 export JRE _ home=$ { Java _ home }/jreexportclasspath=.3360 } 清秀裙:${JRE_HOME}/清秀裙export path=$ path 3360 $ { JRE _ home } /清秀裙export path=$ path 3360 $ } mavensudoath 缺省安装路径为/usr/share/maven,在/etc/profile文件的底部添加,保存并退出,然后添加到source /etc/profile文件中

export m2 _ home=/usr/share/mavenexportmaven _ home=/usr/share/mavenexportpath=$ { m2 _ home } /清秀的裙子3360$

tar-zxvf Apache-Tomcat-8.5.30.tar.gz-c/usr/local/mv/usr/local/Apache-Tomcat-8.5.30/usr /

启动mv/soft/Jenkins.war/usr/local/Tomcat/web apps/Jenkins

进入bash /usr/local/tomcat/清秀裙/startup.sh http://172.25.1.7433608080/Jenkins,按照提示完成安装即可

选择创建project并生成新的test,然后生成自由形式的软件项目,然后单击“确定”

然后选择参数化构建过程,并分别添加可选参数、字符参数

然后选择源代码管理,填写自己的仓库

构建环境选择deleteworkspacebeforebuildstarts

然后在构建步骤中添加新的外壳。 我用红框围起来的地方有评论。 通常可以启动java程序,但如果在此处写入并发现部署成功,则没有java程序。 日志也是空的。 所以最后在主体上写了外壳代替了。

#! /清秀的裙子/bash CD $ { workspace }/mvn install CD $ { workspace }/group-modulemvncleanpackage-d maven.test.skip=true thenecho ' thefilesisalreadyexists ' else mkdir-p $ path fi # app _ name=group-module-1.0-snapshot.jar # PID=` PS CP-f $ { workspace }/group-module/target/group-module-1.0-snapshot.jar $ pathcp-f $ { workspace }/group ge 覆盖现有目标# nohup Java-jar/opt/group-module/group-module-1.0-snapshot.jar/opt;

Rollback) echo "Status:$Status" echo "Version:$Version" cd /opt/bak/$Version #进入备份目录 #APP_NAME=group-module-1.0-SNAPSHOT.jar #pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #if [ -n "${pid}" ]; then #kill -9 $pid #fi cp -f group-module-1.0-SNAPSHOT.jar /opt/group-module/ #将备份拷贝到程序打包目录中,并覆盖之前的jar包 #nohup java -jar /opt/group-module/group-module-1.0-SNAPSHOT.jar > /opt/group-module/group-module-1.0-SNAPSHOT.log 2>&1 & ;; *) exit ;;esac

由于我们经常更新代码,提交构建,使得备份目录日益变大,所以需要写一个脚本来删除老旧的版本,将版本控制在5个,再构建的地方新增一个shell

#!/清秀的裙子/bashReservedNum=5 #保留文件数FileDir=/opt/bak/date=$(date "+%Y%m%d-%H%M%S")cd $FileDir #进入备份目录FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份while(( $FileNum > $ReservedNum))do OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹 echo $date "Delete File:"$OldFile rm -rf $FileDir/$OldFile let "FileNum--"done

最后把我上边说的部署服务的脚本写在服务器上
新增shell

服务器脚本内容

APP_NAME=group-module-1.0-SNAPSHOT.jarpid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `if [ -n "${pid}" ]; thenkill -9 $pidfiBUILD_ID=DONTKILLMEnohup java -jar /opt/group-module/group-module-1.0-SNAPSHOT.jar > /opt/group-module/group-module-1.0-SNAPSHOT.log 2>&1 & 验证 Deploy

目前并没有进程

我们打开jenkins控制台,依次选择我们的部署方式,以及版本号,然后点击开始构建

查看控制台输出,这里已经部署成功,也可以看到状态时Deploy

到服务器上查看,进程已经起来了,日志显示启动成功

可以看下此次部署已备份至我们指定的目录,没有22的原因是,我当时构建22的时候回滚的是21

Rollback

我们再来到控制台,依次选择之后点击构建

看控制台我们,可以看出部署的方式,及回滚的版本

再来到服务器查看,发现进程号已经变了,说明回滚成功

以上写的是后端,这里再补发一个前端的 安装node

这里尽量使用源码来安装与你项目匹配的node版本,否则可能出现依赖问题,或者版本问题,这里我简化安装

apt updateapt install nodejs npm 新建前端项目

这里我们直接copy之前后端的配置,然后再进行改动
源码管理改成自己前端的仓库地址

我绿色框住的内容需要按照你自己的路径来改动

#!/清秀的裙子/bashcd ${WORKSPACE}npm install npm run build:prodecho "Version:20" > ./dist/index.htmlzip -r web.zip ./dist/*case $Status in Deploy) echo "Status:$Status" path="/opt/data-detection/bak/${BUILD_NUMBER}" #创建每次要备份的目录 if [ -d $path ]; then echo "The files is already exists " else mkdir -p $path fi #APP_NAME=group-module-1.0-SNAPSHOT.jar #pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `#if [ -n "${pid}" ]; then#kill -9 $pid#fi cp -f ${WORKSPACE}/web.zip $path && cp -f ${WORKSPACE}/web.zip /opt/data-detection/ #将打包好的war包备份到相应目录,覆盖已存在的目标 #nohup java -jar /opt/group-module/group-module-1.0-SNAPSHOT.jar > /opt/group-module/group-module-1.0-SNAPSHOT.log 2>&1 & echo "Completing!" ;; Rollback) echo "Status:$Status" echo "Version:$Version" cd /opt/data-detection/bak/$Version #进入备份目录 #APP_NAME=group-module-1.0-SNAPSHOT.jar #pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #if [ -n "${pid}" ]; then #kill -9 $pid #fi cp -f web.zip /opt/data-detection/ #将备份拷贝到程序打包目录中,并覆盖之前的jar包 #nohup java -jar /opt/group-module/group-module-1.0-SNAPSHOT.jar > /opt/group-module/group-module-1.0-SNAPSHOT.log 2>&1 & ;; *) exit ;;esac

文件数量控制脚本这里也需要改下路径

#!/清秀的裙子/bashReservedNum=5 #保留文件数FileDir=/opt/data-detection/bak/date=$(date "+%Y%m%d-%H%M%S")cd $FileDir #进入备份目录FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份while(( $FileNum > $ReservedNum))do OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹 echo $date "Delete File:"$OldFile rm -rf $FileDir/$OldFile let "FileNum--"done

最后执行部署的脚本需要重新写,前端的比较简单,写个解压跟权限的就好了

cd /opt/data-detection/ && rm -rf dist/*cd /opt/data-detection/ && unzip web.zip && rm -rf web.zipchmod 777 /opt/data-detection/dist/* 前端演示 deploy

jenkins控制台依次选择deploy,版本号23,然后点击构建


然后访问浏览器

Roolback

jenkins控制台依次选择Rollback,版本号20,然后点击构建,成共之后访问浏览器

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。