跳转至

16. jenkins自动构建静态网站测试

1. 新建jenkins任务

任务名:chupeng130
img_61.png

2. 配置钉钉通知及gitee

general
在钉钉机器人下勾选定义的钉钉机器人
img_62.png

gitee设置
img_63.png

3. 配置gitee仓库

点击源码管理
勾选git
输入gitee仓库地址
选择凭据
img_64.png

4. gitee触发器设置

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

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

5. 配置gitee webhook

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

6. 构建内容

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

7. 配置企业微信通知

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

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

企业微信收到消息

img_70.png

钉钉收到消息

img_71.png

控制台查看

img_72.png

# 其中出现一个钉钉消息的小错误,最终还是执行成功了!
img_73.png

10. 查看静态网站内容是否更新

https://chupeng.site
http://chupeng.cloud (有时间做一个部署ssl证书的教程!)
# 发现已经更新到目前最新的内容了!!!
img_74.png

11. 结论

以后,只要本地提交代码到gitee仓库,jenkins就会自动部署静态site了!!!

12. 优化思路

1.目前是将源代码和site静态网站目录一起拉取下来了,
后期可以只将生成的site目录上传到gitee,
部署时只需要拉取site目录到web服务器即可!节省磁盘空间!

最后更新: 2022-02-25 03:53:42