jenkins自动部署hexo
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。我们可以利用jenkins来自动部署hexo.关于jenkins的安装,可以去查看我的另一篇文章—-jenkins安装教程
hexo需要安装nodejs,
nodejs安装
进入Node最新版下载 <https://nodejs.org/en/download/current/
1 | # 下载nodejs |
安装hexo
1 | npm install hexo-cli -g |
如果提示找不到hexo命令
1 | # 查看npm包的路径 |
配置jenkins
新建任务
添加源码管理
添加凭证
添加私钥
使用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 |
添加公钥
将公钥复制到github下
没错等你添加完后会报错
当然确保你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/ |
直接保存再进去即可
更改分支
配置Github webhooks
在对项目有写权限的用户上获取token
进入github –> setting –>Developer settings –> Personal Access Token –> Generate new token
点击保存,获取token,并保存好你的token
设置webhooks
进入GitHub上指定的项目 –> setting –> WebHooks&Services –> add webhook –> 输入刚刚部署jenkins的服务器的IP
配置Jenkins的Git Plugin
新版Jenkins在初始的时候已经默认安装了Git Plugin和相关依赖的Plugin,我们不用在重复进行安装,直接配置即可
系统管理 –> 系统设置 –> GitHub –> Add GitHub Sever
填写API URL为https://api.github.com
点击旁边的Add按钮, 添加Secret Text
构建触发器,构建环境
编写你的构建脚本
报错
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 |