前言

网上关于 Hexo持续集成的文章大多是使用Travis CI,也有不少同步部署到GithubCoding的教程,不过Travis只对Github的仓库提供CI服务,由于某些原因,Github在国内的访问速度并不理想,所以采用Coding CI进行部署。

什么是持续集成(CI):

持续集成(Continuous Integration,简称CI)是一种软件开发实践,在实践中指只要代码有变更,就自动运行构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

快速开始

获取GitHub和coding的访问令牌

coding

在coding的个人设置中,找到访问令牌,并创建它

点击创建访问令牌,描述可以随便填写,勾选project:depot的复选框即可。

密钥只显示一次,请将获取到的密钥复制保存下来,并以用户名:密钥的方式组合起来。

github

和coding类似,在Settings->Developer settings->Personal access tokens创建github访问令牌

点击创建令牌

名称随意,勾选reop复选框

注意保存密钥,并以用户名:密钥的方式组合起来。

配置构建脚本

回到Coding,进入项目仓库,点击构建,点击下方的新建构建计划配置

我的博客源代码在github所以选择github,勾选静态配置Jenkinsfile文件,选择自定义构建过程,勾选前往配置详情,并点击确定。

源码在github需要关联外部仓库,可根据提示来配置

点击文本编辑器,清空内容。将下方代码填入其中,注意更改其中的用户名,邮箱,仓库等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
pipeline {
agent any
stages {
stage('拉取源码') {
steps {
checkout([$class: 'GitSCM',branches: [[name: env.GIT_BUILD_REF]],userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
}
}
stage('安装Hexo') {
steps {
echo '正在安装Hexo-cli...'
sh 'npm install -g hexo-cli'
sh 'npm install hexo@4.1.1 --save'
sh 'npm install'
echo '安装完成.'
}
}
stage('生成静态文件') {
steps {
echo '生成静态文件中...'
sh 'hexo clean'
sh 'hexo g'
echo '已生成静态文件,准备推送部署.'
}
}
stage('推送部署') {
steps {
echo '正在推送静态文件...'
dir(path: 'public') {
script {
writeFile(file: 'CNAME', text: '域名')
sh 'git init'
sh 'git add -A'
sh 'git config user.name "用户名"'
sh 'git config user.email "邮箱"'
sh 'git commit -m CI'
sh 'git push -f https://${GH_Token}@github.com/用户名/仓库.git master'
sh 'git push -f https://${CO_Token}@e.coding.net/用户名/仓库.git master'
}
}
echo '已完成文件推送.'
}
}
}
}

如若未使用自定义域名,可删除第30行内容。

点击变量与缓存,增加环境变量,分别为:
变量名称:CO_Token,类型:字符串,默认值为上一步Coding令牌的组合。
变量名称:GH_Token,类型:字符串,默认值为上一步Github令牌的组合。

测试配置

稍等片刻,即可看到构建成功。