gitlab connection
选择定义好的gitlab仓库
参数化构建过程
git参数
名称 branch
描述 自定义
参数类型 分支
默认值 $branch
选项参数
名称 Status
选项 Deploy
Rollback
描述 Deploy ----> 发部
Rollback----> 回滚
文本参数
名称 Version
默认值 0
描述 ----选择回滚JenkinsBuildNumber----
!!部署新项目时忽略此项!!
源码管理
Git
Repository URL: 项目的Git仓库地址;#例 http://192.168.0.49:10080/web/easBossManageSystem.git
Credentials: 认证Token
Branches to build
指定分支(为空时代表any)*/master
Additional Behaviours
Sparse Checkout paths boss #项目所在仓库内文件夹时,需要使用此选项,来拉取项目
构建触发器
Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.0.49:50080/project/web-eas-boss
Allowed branches --> Filter branches by regex--> Target Branch Regex --> master #填写 git主线代码分支,否则,git推送任何分支时,都会jenkins构建
#勾选此项,其他参数默认,不需要更改,将URL 之后的地址,放到对应Gitlab项目的 Settings--> Integrations
构建
执行shell
case $Status in
Deploy)
echo "Status:$Status"
path="${WORKSPACE}/${BUILD_NUMBER}" #创建每次要备份的目录
PROJECT_NAME=`echo ${JOB_NAME} |awk -F"-" '{print $NF}'` #取出当前项目名称
if [ -d $path ];
then
echo "The files is already exists "
else
mkdir -p $path
fi
\cp -rf ${WORKSPACE}/${PROJECT_NAME}/* $path #将项目备份到相应目录,覆盖已存在的目标
echo "Completing!"
;;
Rollback)
echo "Status:$Status"
echo "Version:$Version"
cd ${WORKSPACE}/$Version #进入备份目录
\cp -rf ./* ${WORKSPACE}/${PROJECT_NAME}/ #将备份拷贝到程序打包目录中,并覆盖之前的文件
;;
*)
exit
;;
esac
构建后操作
Send build artifacts over ssh
SSH Server 添加的远程主机
Transfers
transfer set
source files boss/**
remove prefix boss/
remote directory boss/
exec command echo "OK"