场景一:打标签实现回滚
背景介绍:
本项目代码存储在gitlab,再通过jenkins发布到对应的节点上。
使用tag控制版本:每一次成功的构建,jenkins会自动为gitlab的分支打上tag,版本更新可直接选择production分支,当需要回滚时选择对应的tag进行构建。
jenkins主要配置
tag的参数化构建
Name: 此参数的变量名,可在之后配置以 $tags 形式引用;
Description: 描述信息,对此变量进行说明;
Parameter Type:抓取数据的类型,此处选择分支或tag,因为需要使用分支develop,使用tag rollback;
Branch Filter: 需要保留的分支名称,只对此处的分支进行展示,因为我们版本更新时只使用此分支。S
Tag Filter: 支持正则匹配,此处*为匹配所有;
Sort Mode: 排序方式;
Quick Filter: 勾选后,会在tag旁多一个可供filter的输入框;
list size: tag展示框一次可展示的tag数量。
构建成功打tag
如上图,勾选上仅在构建成功后打tag
Tag to push: 变量${BUILD_NUMBER}为系统自带变量,是构建编号,第11次构建即为11
Target remote name:这个名称在配置git拉代码的地方添加
源代码配置
由于以上配置,此处需要注意的是$tags变量与Target remote name的配置
效果展示
场景二:构建后生成压缩包,解压实现备份回滚
背景介绍
每个版本的代码push到gitlab的master后,将通过jenkins编译发布(build),并自动打包当前版本代码。回滚时解压对应版本压缩包并发布。
jenkins主要配置
定义type变量:build / rollback
若rollback,则自行填写rollback_number 变量
shell脚本
save_backnumber=5 #需要保留的备份包个数
PROJECT_NAME=${JOB_NAME#*_}
#先定义各种方法
function backup #新建该项目备份目录,打包当前版本代码
{
if [ ! -d "/var/lib/jenkins/common/${JOB_NAME}" ]; then mkdir -p /var/lib/jenkins/common/${JOB_NAME};fi
echo -e "