HEXO博客自动集成配置(travis篇)

如何将托管在github的hexo博客在每次提交后自动更新并生成最新博客发布到指定主机或github-page.

针对github开源库上的hexo博客,我们可以很方便的进行自动构建配置,以下是相关的https://travis-ci.org/下的配置。

参考教程:

@Tommy(HEXO作者):用 Travis CI 自動部署網站到 GitHub

@IISSNAN(HEXO主题NEXT作者):使用 Travis CI 自动更新 GitHub Pages


按照原理来讲,大致需要三个步骤,
第一获取 GitHub Personal Access Token;
第二使用 Travis CI 的工具加密这个 Token,并保存到 .travis.yml 文件中;
第三配置文件使用 Access Token。具体的操作步骤如下:

1.生成一个 Github Personal Access Token。前往 Github 帐号 Settings 页面,在左侧选择 Personal Access Token,然后在右侧面板点击 “Generate new token” 来新建一个 Token。需要注意的是,创建完的 Token 只有第一次可见,之后再访问就无法看见(只能看见他的名称),因此要保存好这个值。(Token 权限: public_repo, repo:status, repo_deployment)

2.使用 Travis CI 的 命令行工具 加密 GitHub 的 Personal Access Token。这个工具是一个 gem 包,因此需要 Ruby 环境。假设已经安装好 Ruby 环境,即可安装 Travis CI 的命令行工具,以及加密:

#安装 Travis CI 命令行工具
gem install travis
#加密 Personal Access Token
travis encrypt -r nooldey/articles GH_TOKEN=XXX --add

第二条命令中 -r 后的参数是 GitHub 仓库的名字(<用户名>/<仓库名>);GH_TOKEN 将作为环境变量使用。将这条命令输出的结果复制到 .travis.yml 文件下:

env:
global:
- GH_REF: github.com/nooldey/articles.git
- secure: "XXXXXX"

这个设置之中包含了 仓库的地址(设置在 GH_REF 环境变量中)以及 Access Token (被加密了,设置在 GH_TOKEN 环境变量中)。这两个环境变量将 Build 的时候被使用,用于往 GitHub gh-pages 分支推送。


以下是本人在github上配置的travis.yml文档内容。

travis配置范例view raw
language: node_js
node_js: stable
cache:
directories:
- node_modules
before_install:
- openssl aes-256-cbc -K $encrypted_99b000088b8e_key -iv $encrypted_99b000088b8e_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host 102.201.64.94\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
install:
- npm install -g hexo
- npm install -g hexo-cli
- npm install
before_script:
- git config --global user.name "nooldey"
- git config --global user.email "nooldey@uiv5.com"
- sed -i'' "s~git@github.com:nooldey/articles.git~https://${REPO_TOKEN}:x-oauth-basic@github.com/nooldey/articles.git~" _config.yml
script:
- hexo clean
- hexo g
after_success:
- hexo d
branches:
only:
- master
env:
global:
- GH_REF: github.com/nooldey/articles.git
- secure: hIYpDCqLwCXoFkLzMwuAHxMOACjhGPs5l97HNGk6CEppy57prKIrDy=

注意

在windows系统下生成travis秘钥文件id_rsa.enc会出现解析失败问题,所以建议参考开头的两篇教程,在LINUX或衍生系统下进行travis秘钥文件生成。

配置信息仅供参考,本配置适合托管源代码(nooldey/articles)与发布站点代码(nooldey/nooldey.github.io)处于两个不同git库的情况,详情后面补充上。

NOOLDEY

本文作者:NOOLDEY

做一个诗情画意的码农,皮皮猪,我们走!

原文链接: http://zhuweisheng.com.cn/hexo/travis-setting/

本站文章如无特殊声明均为原创,创作不易,转载请注明来源,谢谢!