jenkins自动部署hexo

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。我们可以利用jenkins来自动部署hexo.关于jenkins的安装,可以去查看我的另一篇文章—-jenkins安装教程

hexo需要安装nodejs,

nodejs安装

进入Node最新版下载 <https://nodejs.org/en/download/current/

1
2
3
4
5
6
7
8
9
10
11
# 下载nodejs
wget -O /home/node.tar.xz https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz
# 解压
tar -xvf /home/node.tar.xz -C /home
# 进入目录
cd /home/node-v16.17.0-linux-x64/bin/
# 测试是否成功
./node -v
# 加软连接
ln -s /home/node-v16.17.0-linux-x64/bin/node /usr/local/bin/node
ln -s /home/node-v16.17.0-linux-x64/bin/npm /usr/local/bin/npm

安装hexo

1
npm install hexo-cli -g

如果提示找不到hexo命令

1
2
3
4
# 查看npm包的路径
npm root -g
# 添加软链接
ln -s /home/node-v16.17.0-linux-x64/lib/node_modules/hexo/bin/hexo /usr/local/bin/hexo

配置jenkins

新建任务

image-20220927143528858

添加源码管理

image-20220927143853025

添加凭证

image-20220927143941441

添加私钥

使用ssh-kengen生成ssh密钥对

1
ssh-keygen -t rsa -C 'your email'

然后将ssh密钥对复制到jenkins目录下

1
cp  ~/.ssh/id_rsa ~/.ssh/id_rsa.pub /var/lib/jenkins/.ssh/

将私钥id_rsa复制到jenkins下面

1
cat  ~/.ssh/id_rsa

image-20220927144441833

添加公钥

将公钥复制到github下

image-20220927144519632

image-20220927144600645

没错等你添加完后会报错

image-20220927144706745

当然确保你jenkins的机器安装了git

只需要在jenkins的设备上运行一下

1
git ls-remote -h git@github.com:Tigercoll/hexo.git HEAD

然后将ssh下的 known_hosts文件放到jenkins的ssh目录下即可

1
cp ~/.ssh/known_hosts /var/lib/jenkins/.ssh/

直接保存再进去即可

更改分支

image-20220927145201769

配置Github webhooks

在对项目有写权限的用户上获取token

进入github –> setting –>Developer settings –> Personal Access Token –> Generate new token

img

点击保存,获取token,并保存好你的token

设置webhooks

进入GitHub上指定的项目 –> setting –> WebHooks&Services –> add webhook –> 输入刚刚部署jenkins的服务器的IP

img

配置Jenkins的Git Plugin

新版Jenkins在初始的时候已经默认安装了Git Plugin和相关依赖的Plugin,我们不用在重复进行安装,直接配置即可

系统管理 –> 系统设置 –> GitHub –> Add GitHub Sever

填写API URL为https://api.github.com

img

点击旁边的Add按钮, 添加Secret Text

img

构建触发器,构建环境

img

编写你的构建脚本

image-20220927154407373

报错

1
jenkins 构建提示 Error: EACCES: permission denied

添加权限

1
chown -R jenkins:jenkins /var/lib/jenkins/

第一次构建项目也会报错,需要在jenkins本机workspace目录下运行一次

1
Hexo Cannot find module './build/Release/DTraceProviderBindings' 错误

重新构建hexo

1
npm install hexo --no-optional

当然你可以直接在jenkins中添加

1
hexo g -d || npm install hexo --no-optional && hexo g -d