travis-ci 自动化部署hexo静态博客

使用github pages的用户应该都有一个痛点, 就是要本地写好博文后再执行hexo c,hexo g,hexo d等命令, 特别是当博文数量多了的时候hexo g就要等待几分钟甚至更长时间,然后在hexo d 甚是烦恼.

查了资料, 有了travis-ci这个GitHub 的亲兄弟,就容易的多了, 只需3步配置,就可以享受持续集成自动部署博客的.

用户只需要在markdown原文上修改,然后pushgithub上去就可以了,

Step 1 GitHub 上配置

  1. 安装github app

    https://github.com/settings/installations

    image-20190825142940431

  2. 申请Personal access tokens

    转送门 -> https://github.com/settings/tokens

    在这里主要是设置github-token,让travis有权限读写github项目文件

    github上申请一个就好

    生产新的token的按钮.申请好后就会出现下面的那个.

    image-20190825143124613

    我勾选的设置,可以参考

    image-20190825143240304

Step 2 配置travis-ci

  1. https://travis-ci.org配置项目

    注意私有项目需要用https://travis-ci.com 这个是需要费用的.

    github账号登录https://travis-ci.org, 在右上角头像出现下拉框里面选择设置,

    然后找你博客源码所在项目, (我的项目放在tabris233.github.ioblog-source分支下,所以勾选这个项目,然后点后面的Settings)

    image-20190825140545978

    先在2上添加github-token值用刚刚申请好的哪一个, 后面在构建日志中展示值得选项可勾可不勾. 然后点add, 然后就会出现在1的位置.

    Ps: 3 是个定时构建, 看个人心情, 随意了.

    image-20190825141146382

  2. 要在项目根目录建立.travis.yml文件

    其实这个配置文件写的比较烂, https://travis-ci.orggithub\ pages有一个专门的配置yaml,

    我这个算是专门配置加原始配置杂交出来的…

    最后三行感觉没啥用,但是没有就是不行…

    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
    language: node_js   # 指定运行环境

    node_js: '11' # node环境的版本

    branches: # 该shell脚本只对github的blog-source分支生效
    only:
    - t'tblog-source

    git: # 克隆github上的项目到travis
    quite: true # 为了不打印一些日志,故设为安静克隆
    depth: 1 # 只克隆最新的一次commit提交,最多可以克隆最新的30次提交,但是没必要
    submodules: true # 不克隆子项目(避免再次克隆hexo主题)

    cache: yarn # 缓存yarn命令也就是yarn add命令执行后的目录文件,即node_modules

    install:
    - yarn global add hexo-cli # 在安装阶段,运行yarn命令来安装依赖
    - yarn

    script:
    - hexo clean
    - hexo generate

    deploy: # 发布阶段
    provider: pages # 解析支持者为github pages
    skip_cleanup: true # 必须打开,如果在travis构建期间你正在推代码,很可能误删你最新的上传代码
    github_token: $GITHUB_TOKEN # 在travis的环境变量获取授权码,表示travis有权对github的项目进行拉取推送操作
    keep_history: true # 禁止travis对你的github项目进行强制推送
    repo: tabris233/tabris233.github.io
    target-branch: master # 你推送到哪个分支.
    fqdn: tabris.top
    local_dir: ./public
    email: tabris.dq@qq.com
    name: tabris
    project_name: tabris_blog_travis-ci
    on: # 这个静态文件来自travis中的master分支
    branch: matery
    all_branches: true

Step 3 travis-ci执行任务

修改博文markdown 然后push上去就行了. 会看到这样的界面

包含构建日志什么的,最后会部署到github pagesmaster分支上

image-20190825141944578