通过 travis 自动部署 Hexo

准备工作

  • 生成 GitHub 的 Personal access tokens,需要有 repo 相关权限

  • 安装 Git deployer plugin for Hexo

    1
    npm install hexo-deployer-git --save

配置

  • 配置 Hexo

    在 Hexo 的_config.yml 中添加 Hexo 编译好后文件的 git 地址,如果需要同时提交到多个不同地址,可以添加多个。

    1
    2
    3
    4
    5
    6
    7
    8
    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:
    type: git
    repo: https://__GITHUB_TOKEN__@github.com/{user_name}/{git_repo}
    branch: master
    name: gythialy
    email: gythialy@users.noreply.github.com

    注:https://__GITHUB_TOKEN__@github.com/{user_name}/{git_repo} 示例为 https://__GITHUB_TOKEN__@github.com/gythialy/gythialy.github.io.git

  • 配置 travis

    在 Hexo 根目录添加 .travis.yml,内容如下:

    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
    language: node_js

    node_js:
    - "7"

    branches:
    only:
    - raw

    before_install:
    - npm install -g hexo-cli
    - npm install -g gulp

    install:
    - npm install

    before_script:
    - git config --global user.name 'gythialy'
    - git config --global user.email 'gythialy@users.noreply.github.com'
    - sed -i "s/__GITHUB_TOKEN__/${__GITHUB_TOKEN__}/" _config.yml
    # use custom theme config
    - git clone --branch v5.1.2 --depth=10 https://github.com/iissnan/hexo-theme-next.git themes/next
    - git checkout -b v5.1.2
    - cp next_config.yml ./themes/next/_config.yml

    script:
    - hexo generate && gulp && hexo deploy

    注: 因为源文件和生成的文件共用了 git repo,所以需要指定只编译 源文件分支(raw),master 作为编译好的文件存放路径。

  • 配置 travis 环境变量

    travis 网页中添加变量 __GITHUB_TOKEN__值为前面生成的 GitHub Personal access tokens

—EOF—