在平时工作中 开发新的版本,版本迭代,经常会在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
如果需要回退的话 可以添加 Choice Parameter 后面需要写shell脚本
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`
im_file=$(find /data/b2b2c_web/ -maxdepth 1 -type d -name "im*-$git_version" |tail -2| head -1 )
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 "------------修改完毕-----------------------"
}
build (){
echo "-----------------构建im------------------"
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
echo "------------------构建结束----------------------"
}
rollback () {
file=$(find /data/b2b2c_web/ -maxdepth 1 -type d -name "im*-$git_version" |tail -2| head -1 )
rm -rf /data/b2b2c_web/im
ln -s $file /data/b2b2c_web/im
}
replace_build () {
replace
build
}
if [ $deploy_env == "deploy" ];then
if [ "$git_version" = "v1.2" ];then
if [ $GIT_COMMIT == $GIT_PREVIOUS_SUCCESSFUL_COMMIT ];then
echo "已经部署过该${git_version}版本,文件名${im_file} "
exit 1
else
replace_build
fi
elif [ "$git_version" = "v1.1" ];then
if [ $GIT_COMMIT == $GIT_PREVIOUS_SUCCESSFUL_COMMIT ];then
echo "已经部署过该${git_version}版本,文件名${im_file} "
else
build
fi
fi
elif [ $deploy_env == "rollback" ];then
rollback
fi
如果在jenkns中选择了 replace 执行打包 部署的代码。选择了rollback 则回滚到最近一次部署的代码中,为了防止重复构建,加了一个git的commid 如果等于上次构建的commitid的话 返回已经部署过 并退出,这个回退有点问题 只能回退最近一次构建成功的版本 在之前的不行,应该也可以通过脚本实现 可以试一下。
构建项目
构建项目时 选择对应的信息就可以啦
🎡 以上就是本期的所有内容。如果觉得我的文对你有帮助,可以一键三联支持下,有什么好的想法也可以分享给我
如果觉得我的文对你有帮助的话 可以关注下我的公众号 一般写文第一时间发布到公众号中
公众号名称 咕咕崽
二维码: