首页 > 其他 > 详细

jenkins+gitlab自动发布静态项目

时间:2021-06-12 01:15:30      阅读:17      评论:0      收藏:0      [点我收藏+]

流程图:

技术分享图片

 

 通过这个粗糙的流程图可以看出构建流程,开发push代码到Gitlab,通过打tag触发web钩子构建任务,执行任务中的shell脚本,拉取代码,部署至服务器。通过Jenkins任务页面选项,也可以简单的进行部署、回滚操作。

二、Gitlab配置

从github上找了一个小项目练习克隆到本地, GitHub地址:https://github.com/mzlogin/dujitang

 技术分享图片

 

 配置webhook用于触发自动构建

技术分享图片

 

技术分享图片

 

 URL是jenkins中的任务地址,token是Jenkins自动生成的。后面会提及。测试 返回200说明连接没问题。

 

 三、Jenkins配置

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

点开高级  生成个token 就是Gitlab webhook中配置的

 技术分享图片

 

技术分享图片

 

 脚本内容:

#!/bin/bash
datetime=`date +%Y%m%d-%H:%M`

workdir=/root/.jenkins/workspace/test/
#cd $workdir
#tar czf web-${datetime}.tar.gz ./*
webserver="k8s-node1 k8s-node2"
deploy(){
for host in ${webserver}
do
ssh root@${host} "mkdir -p /usr/share/nginx/${datetime}${git_version}"

scp -r ${workdir}/* root@${host}:/usr/share/nginx/${datetime}${git_version}

ssh root@${host} "rm -rf /usr/share/nginx/html && \
ln -s /usr/share/nginx/${datetime}${git_version} /usr/share/nginx/html
chmod -R 775 /usr/share/nginx/html/"
done
}

rollback(){
for host in ${webserver}
do
backfile=`ssh root@${host} "find /usr/share/nginx/ -maxdepth 1 -type d -name "*${git_version}""`
ssh root@${host} "rm -rf /usr/share/nginx/html && \
ln -s $backfile /usr/share/nginx/html && \
chmod -R 775 /usr/share/nginx/html/"
done
}

if [ ${deploy_env} == ‘deploy‘ ];then
if [ ${GIT_COMMIT} == ${GIT_PREVIOUS_SUCCESSFUL_COMMIT} ];then
echo "您已经部署过该${git_version}版本"
exit 1
else
deploy
fi
elif [ ${deploy_env} == ‘rollback‘ ];then
rollback
fi

四、测试

技术分享图片

 

 现在修改一下代码 改成v6版本,打tag push到代码库

技术分享图片

 

 技术分享图片

 

打完tag 已经触发自动构建了

技术分享图片

 

 测试回退到V3版本看看

技术分享图片

 

 技术分享图片

 

 

技术分享图片

 

 技术分享图片

回退其实就是把链接重新指向之前的版本。。

 

jenkins+gitlab自动发布静态项目

原文:https://www.cnblogs.com/kll-devops/p/14864488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!