Jenkins+Gogs+Hexo实现自动化部署博客
流程介绍
流程:本地博文仓库 push 至 Gogs远程博文仓库,Gogs 的 Web钩子 推送事件至服务器 Jenkins,Jenkins 收到消息后执行脚本,pull 博文至 hexo 目录,然后执行 hexo g 生成静态文件。
使用前准备
- 服务器已安装配置好
Git,若没有安装,可参考 Linux环境下安装、升级Git 进行安装; - 服务器已安装
Hexo程序,若没有安装,可参考 Hexo 文档 进行安装; - 服务器已安装配置好
Gogs,若没有安装,可参考 CentOS 7搭建Gogs服务 进行安装; - 服务器已安装配置好
Jenkins,若没有安装,可参考 CentOS环境下安装与配置Jenkins 进行安装; - 服务器已安装配置好
Nginx并为Hexo生成的静态文件目录创建站点;
Jenkins配置
安装 gogs-webhook 插件
通过面板安装
操作步骤:系统管理 -> 插件管理 -> 可选插件,在搜索框中输入 gogs,勾选插件后单击 直接安装 按钮;

手动安装
有时通过面板安装可能会因网络问题导致安装失败,所以只能手动安装插件。

下载 gogs-webhook插件;
单击
系统管理->插件管理->高级,在 上传插件 表单选择已下载的插件文件,单击上传;

配置任务
- 创建新任务

- 配置Gogs密钥
可根据自身需求修改密钥;

- 源码管理

- 构建触发器
在 构建触发器 中勾选 Build when a change is pushed to Gogs;在 构建 步骤中新增 执行shell;

执行脚本内容:
1
2
3
4
5
6
7
8
9!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/git/bin
cd /var/www/hexo/source/_posts
git pull origin master
cd /var/www/hexo
清理已生成文件
hexo clean
重新生成
hexo g
其中 /var/www/hexo/source/_posts 为 hexo 源文件存放目录并已保存 git 相关信息,需根据自身需求修改对应的路径;
修改权限
修改 /etc/sysconfig/jenkins 中的 JENKINS_USER 为 root:
1
JENKINS_USER="root"
修改 jenkins 相关目录权限:
1
2
3chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
重启jenkins
1
2 重启jenkins
systemctl restart jenkins
Gogs配置
- 进入仓库主页,单击
仓库设置;

- 单击
管理Web钩子->添加Web钩子,选择Gogs;

- 添加配置:

其中 推送地址 格式为 http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名> 。
Jenkins调试
- 在
Gogs仓库设置面板中单击测试推送按钮;

- 返回到
Jenkins面板,进入任务面板,单击最新构建记录;单击控制台输出查看输出信息;

- 查看博客网站是否有更新变化。
参考
[小题大做]Github + Jenkins 实现自动化部署 hexo 博客静态文件
以上是 Jenkins+Gogs+Hexo实现自动化部署博客 的全部内容, 来源链接: utcz.com/a/131888.html
