通过Travis来自动构建博客

本文基于熟练搭建基于github+hexo搭建博客的基础上,并且对github简单操作,并且会使用通过ssh的方式提交代码到github上

准备工作

  1. 通过github账号登录Travis
  2. 并且启用已经在github上创建好的博客项目,如下图


    image
  3. 点击右侧的Setting,按下图配置(红框处,暂时可以不管)
    image

修改原来的博客项目

  1. 在根目录增加.travis.yml文件和.travis文件夹
  2. 修改.travis.yml文件,内容如下
language: node_js
node_js: stable
install:
  - npm install
script:
  - hexo d -g
  1. 我们用hexo deploy去发布博客,会发现Travis后台提示说没有权限
  2. 这是因为我们用git@github.com:[Your name]/[Your project].git的方式去拉取代码的,并且在hexo的配置文件中,我们也是这样配置使用ssh方式拉取、推送代码的
  3. 而Travis环境中没有对应的ssh key,所以不能推送代码。

为Travis创建SSH

  1. 首先使用你已经生成好的ssh key私钥�公钥文件
  2. 将公钥上传到github上
  3. 将秘钥复制�到博客目录下(有.git文件夹的那一层),并改名为id_rsa_github[随意]
  4. 安装Travis Client
  5. 首先确保已经安装了Ruby,并且大于等于2.0.0版本
[sunhao@sunhaode-MacBook-Pro blog]$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
  1. 安装Travis Client
# 如果是Mac或者Linux,需要加sudo
gem install travis
  1. 简称是否正确安装
[sunhao@sunhaode-MacBook-Pro blog]$ travis version
1.8.9
  1. 开始加密SSH key
# 如果是github项目,先用travis login登录,如图
image
# 通过命令travis encrypt-file id_rsa_github -add加密私钥
[sunhao@sunhaode-MacBook-Pro blog_hexo]$ travis encrypt-file id_rsa_github -add
encrypting id_rsa_github for sunhao-java/blog_hexo
storing result as id_rsa_github.enc
storing secure env variables for decryption

Make sure to add id_rsa_github.enc to the git repository.
Make sure not to add id_rsa_github to the git repository.
Commit all changes to your .travis.yml.
  1. 这个时候,Travis会自动把一些参数上传到Travis的网站上了,就是第二张图展示的暂时不需要关注的红框内容,记住前面的key,下文需要用到
  2. 然后复制生成的enc文件到.travis文件夹下
  3. 并且删除原来的id_rsa_github文件

修改.travis.yml

  1. 修改前面创建的.travis.yml文件
  2. 这个文件里有可能有一段话,大概如下,可以删掉,是因为前面使用了--add参数
openssl aes-256-cbc -K $encrypted_65cc9ea56965_key -iv $encrypted_65cc9ea56965_iv
-in .travis/id_rsa_github.enc -out ~/.ssh/id_rsa_github -d
  1. 在这个文件的末尾加上如下的命令:
before_install:
  - openssl aes-256-cbc -K $encrypted_65cc9ea56965_key -iv $encrypted_65cc9ea56965_iv
  -in .travis/id_rsa_github.enc -out ~/.ssh/id_rsa_github -d
  - chmod 600 ~/.ssh/id_rsa_github
  - eval $(ssh-agent)
  - ssh-add ~/.ssh/id_rsa_github
  - cp .travis/ssh_config ~/.ssh/config
  - git config --global user.name \'Your Name\'
  - git config --global user.email \'Your Email\'
  1. 附上上面的.travis/ssh_config文件内容:
Host github.com
    User git
    StrictHostKeyChecking no
    IdentityFile ~/.ssh/id_rsa_github
    IdentitiesOnly yes

结尾

  1. 至此,配置以及全部OK了
  2. 可以写一篇博客,并push到github上
  3. 然后到Travis的控制台观察,一次构建就被触发了
  4. 稍等片刻就可以在博客上看到你刚刚写的文章了

Tks,安利下我写的东西

推荐阅读更多精彩内容