Welcome to imfht.github.io!

imfht.github.io

TravisCi与 Gitbook 实战:使用 TravisCi自动编译Gitbook文档并发布 Release

最近有一个项目需要编写比较多的 Markdown 文档,于是使用 Gitbook来完成这个事情,并使用 github 进行版本管理。这篇文章实现了当新的 Markdown 文档被推送到 github 时TravisCi自动发起构建,构建完成之后发布一个PDF release。

什么是 Gitbook

GitBook 是一个基于Node.js 的命令行工具,可使用Github/Git 和Markdown 来制作精美的电子书。
- 百度百科

什么是 TravisCi

Travis CI是在软件开发领域中的一个在线的,分布式的持续集成服务,用来构建及测试在GitHub托管的代码。这个软件的代码同时也是开源的,可以在GitHub上下载到,尽管开发者当前并不推荐在闭源项目中单独使用它。
- 维基百科

实战

在项目的根目录添加如下的 .travis.yml 文件,在 Travis.yml设置自动 build即可。

language: node_js

node_js:
  - "9"

# 缓存依赖
cache:
  directories:
    - $HOME/.npm

before_install:
  - export TZ='Asia/Shanghai' # 更改时区
  - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157
  - sudo apt update -qq
  - sudo apt-get install calibre xvfb -y
  - sudo apt-get install ttf-wqy-*
  - echo '#!/bin/bash' | sudo tee -a /usr/local/bin/ebook-convert
  - echo 'Run xvfb-run /usr/bin/ebook-convert $@' | sudo tee -a /usr/local/bin/ebook-convert
  - echo 'xvfb-run /usr/bin/ebook-convert "$@"' | sudo tee -a /usr/local/bin/ebook-convert
  - sudo chmod +x /usr/local/bin/ebook-convert

# 依赖安装
install:
  - npm install gitbook-cli -g
  # 安装 gitbook 插件
  - gitbook install

# 构建脚本
script:
    # 自定义输出目录 gitbook build src dest
  - gitbook pdf ./ ./book.pdf

# 分支白名单
branches:
  only:
    - master # 只对 master 分支进行构建

# GitHub Pages 部署
deploy:
  provider: releases
  skip_cleanup: true
  api_key: $CI_USER_TOKEN
  file:
     - book.pdf