16. jenkins自动构建静态网站测试
1. 新建jenkins任务¶
任务名:chupeng130

2. 配置钉钉通知及gitee¶
general
在钉钉机器人下勾选定义的钉钉机器人

gitee设置

3. 配置gitee仓库¶
点击源码管理
勾选git
输入gitee仓库地址
选择凭据

4. gitee触发器设置¶
构建触发器
勾选gitee webhook触发器
复制url地址(注意:需要使用公网IP!!!如果搭建的gitlab则不需要!!!)
http://10.0.8.5:8080/gitee-project/chupeng130

往下拉,找到gitee webhook密码,点击右侧的生成
复制得到的密码!

5. 配置gitee webhook¶
登录到gitee的chupeng130仓库
点击右上角的管理
在左侧找到webhook,点击添加webhook
输入上一步得到的url及密码,
点击确认

6. 构建内容¶
点击构建
选择执行shell
输入脚本内容
/usr/bin/sh /jenkins-scripts/deploy_chupeng130.sh

7. 配置企业微信通知¶
点击构建后操作
选择企业微信通知(正常选择钉钉通知或者企业微信通知其中之一就可以了!)
其他输入ALL
点击保存即可!

8. 服务器上编写deploy_chupeng130.sh脚本¶
sudo -i
cd /jenkins-scripts
vim deploy_chupeng130.sh
# 采用ansible方案,方便后期维护
#!/bin/bash
#1.判断当前用户是否为root
if [ $(id -u)==0 ];then
echo "当前用户是root,可以继续执行!"
else
echo "当前用户不是root,本脚本需要root执行";
exit
fi
#2. 删除站点目录
echo 'step1:开始删除旧的网站内容'
ansible myweb -m shell -a "sudo rm -rf /service/chupeng130/*"
if [ $? -eq 0 ];then
echo 'step1:删除完成!'
else
echo 'step1出现问题!'
exit
fi
#3. 拉取代码(前提:已经配置好免密拉取!)
echo 'step2:开始拉取最新代码'
ansible myweb -m shell -a "cd /service/chupeng130 && sudo git clone https://gitee.com/chupeng130/chupeng130.git"
if [ $? -eq 0 ];then
echo 'step2:拉取完成!'
else
echo 'step2出现问题!'
exit
fi
添加可执行权限¶
chmod +x deploy_chupeng130.sh
手动执行脚本测试!¶
sh deploy_chupeng130.sh
root@4c16g:/jenkins-scripts# sh deploy_chupeng130.sh
当前用户是root,可以继续执行!
step1:开始删除旧的网站内容
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo
10.0.8.3 | CHANGED | rc=0 >>
10.0.8.2 | CHANGED | rc=0 >>
step1删除完成!
step2:开始拉取最新代码
10.0.8.3 | CHANGED | rc=0 >>
Cloning into 'chupeng130'...
10.0.8.2 | CHANGED | rc=0 >>
Cloning into 'chupeng130'...
Updating files: 100% (1733/1733), done.
step2拉取完成!
9. 本地提交代码测试!¶
env/scripts/activate
cd cpblog
git add .
git commit -am 'jenkins自动部署静态网站测试'
mkdocs build
git add .
git commit -am '生成site目录'
git push -u origin
企业微信收到消息¶
钉钉收到消息¶
控制台查看¶
# 其中出现一个钉钉消息的小错误,最终还是执行成功了!

10. 查看静态网站内容是否更新¶
https://chupeng.site
http://chupeng.cloud (有时间做一个部署ssl证书的教程!)
# 发现已经更新到目前最新的内容了!!!

11. 结论¶
以后,只要本地提交代码到gitee仓库,jenkins就会自动部署静态site了!!!
12. 优化思路¶
1.目前是将源代码和site静态网站目录一起拉取下来了,
后期可以只将生成的site目录上传到gitee,
部署时只需要拉取site目录到web服务器即可!节省磁盘空间!
最后更新:
2022-02-25 03:53:42