vlambda博客
学习文章列表

Jenkins 选择tag进行构建及回滚


在平时工作中 开发新的版本,版本迭代,经常会在git上打标签,这个文主要内容是 在jenkins上通过选择不通的tag标签进行构建 ,并发布到服务器中运行起来。这个文章不会详细到从0开始,只重点讲解下怎么通过tag构建 如果清除标签是什么或者 怎么构建jenkins项目及jenkins参数可以参考前面的文



         安装插件  


需要现在jenkins中安装Git Parameter插件


Dashboard-->Manage Jenkins --> Manage Plugins 搜索Git Paramete进行安装



          构建项目


构建一个item 类型根据自己的项目需要选择 我这个是 freetyle project


General 里要注意

勾选This project is parameterized [参数化构建过程] 指的是外置传参的一种形式 ---> 在Add parmeter [添加参数] 中选择Git Parameter


Jenkins 选择tag进行构建及回滚


如果需要回退的话 可以添加  Choice Parameter 后面需要写shell脚本


Jenkins 选择tag进行构建及回滚


Source Code Management 环节


这个环节要注意的时Branch Specifier (blank for 'any') ,需要填写 Git Parameter中的变量名




Build


我构建的项目是 JavaScript vue框架 执行的脚本如下


jenkins:


echo "----------------------$git_version-----------------"
if [ "$git_version" = "v1.2" ];then
  sh -x /home/sh/replace/replace_docker-im.sh
else
  echo "-------------Git分支:${git_version}----------------"
fi



引入的shell脚本:


DATE=`date +%Y-%m-%d`
replace () {
    pwd
    source /home/sh/replace/replace.txt
    # 更改域名
    echo "--------------修改域名-------------------"
    sed -i "s@im_domain@$WS_IM_Domain@g" ./src/utils/config.js
    sed -i "s@seller_domain@$Seller_Domain@g" ./src/utils/config.js

    echo "------------修改完毕-----------------------"

    npm install
    cp -fr node_modules_special/* node_modules/
    npm run build
    #mv /data/b2b2c_web/im /data/b2b2c_web/im_$DATE$BUILD_NUMBER
    rm -rf /data/b2b2c_web/im
    mv dist /data/b2b2c_web/im$DATE-b$BUILD_NUMBER-$git_version
    ln -s /data/b2b2c_web/im$DATE-b$BUILD_NUMBER-$git_version /data/b2b2c_web/im
}

rollback () {
    file=$(find /data/b2b2c_web/ -maxdepth 1 -type d -name "im*-$git_version" | head -n -2)
    rm -rf /data/b2b2c_web/im
    ln -s $fine /data/b2b2c_web/im
}

if [ $deploy_env == "deploy" ];then
        replace
elif [ $deploy_env == "rollback" ];then
        rollback
fi


如果在jenkns中选择了 replace 执行打包 部署的代码。选择了rollback 则回滚到最近一次部署的代码中(这个有点问题,还在构思,)


构建项目


构建项目时 选择对应的信息就可以啦



🎡 以上就是本期的所有内容。如果觉得我的文对你有帮助,可以一件三联支持下,有什么好的想法也可以分享给我