Travis CI自动部署Hexo博客

为了方便博客管理,我是将博客源码放在resource分支,最终生成部署的页面文件放在master分支,每次更新博客都需要先提交博客文件,然后手动部署到GiHub Pages,次数一多就显得麻烦,而且还容易出错。那么有没有一种方法让这个过程自动化,在提交完博客文件后自动帮我们编译部署文件到GitHub上呢?很幸运有现成的工具可供使用,使用Travis-CI就可以将整个过程自动化,下面借用一张图片来说明Travis_CI的作用

Travis CI自动部署Hexo博客

准备工作

  • 一个Hexo源码仓库,源码放在resource分支,编译后的文件放在master分支,类似于下面这样:
    Travis CI自动部署Hexo博客

  • 获取GitHub_Token
    登录GitHub,在Settings / Developer settings / Personal access tokens中,新建一个token,权限将repo选中就可以,生成的token一定要保存好,等会配置在Travis中,只会显示一次,丢失就需要再重新生成一个。
    Travis CI自动部署Hexo博客
    Travis CI自动部署Hexo博客

  • 进入Travis CI官网2021年6月15日Travis CI地址更改为 travis-ci.com,权限设置操作大体相同
    Travis可以使用GitHub账号进行登录,进入设置(Settings),打开需要自动编译的公开仓库
    Travis CI自动部署Hexo博客
    然后点击右侧的Settings按钮,找到环境变量(Environment Variables),左侧填一个名字,右侧填写刚刚获取到的Github_Token,Display value in build log按钮不要打开,打开后其他人就可以在日志文件中看到你的Github_Token
    Travis CI自动部署Hexo博客

告诉Travis怎样编译我们的项目

在Hexo站点目录,也就是.config.yml文件同级目录,创建一个名为.travis.yml的文件

language: node_js # 语言
node_js: stable # node.js版本
cache:          # 缓存,加快下次编译速度
  directories:
    - node_modules

branches:      # 监控 resource分支,此分支发生变化就启动一次新的构建
  only:
    - resource

before_install:  # 和自己电脑上安装的hexo-cli一样,也需要安装依赖环境
  - npm install -g hexo-cli

install:
  - npm install
  - npm install hexo-deployer-git --save
    
script:        # 编译Hexo
  - hexo clean
  - hexo generate

after_script:  # 编译完成后推送到GitHub上
  - git config user.name "wrxiang"  
  - git config user.email "wrxiang@163.com"
  
  #将.config.yml中的文字`Travis`替换为环境变量中的{Travis}代表的那串密码
  - sed -i "s/Travis/${Travis}/g" ./_config.yml  
  - hexo deploy

我们还需要修改_config.yml文件的deploy节点

#修改前
deploy:
  - type: git
    repo: git@github.com:wangruix/wangruix.github.io.git
    branch: master
#修改后
deploy:
- type: git
  # 下方的gh_token会被.travis.yml中sed命令替换
  repo: https://Travis@github.com/wangruix/wangruix.github.io.git
  branch: master

最后将新创建的.travis.yml文件提交到源码路径
Travis CI自动部署Hexo博客

我们就可以新增一篇博客,完成后将博客提交到源码分支,然后就可以到Travis查看构建情况,Job log中可以查看详细的构建日志
Travis CI自动部署Hexo博客

Travis构建完成后会将生成的文件推送到Github上,这样我们只需要提交博客的源文件,然后Travis帮我们完成构建部署过程,博客发布更新更加方便了。

参考文章

Travis CI使用经验
用TravisCI持续集成自动部署Hexo博客的个人实践

上一篇:C++关键字之类型说明符 auto


下一篇:jenkins-简介