在 CI 环境中使用 GitBook 构建文档,大部分时间用在了安装 GitBook 环境上,将环境打包到 Docker,大大节约了时间。
-
Node.js
GitBook
均为最新版 -
本镜像主要完成
GitBook
及其插件的安装,具体请查看alpine/book.json
文件 -
基于
alpine/book.json
可以构建自己的镜像
进入 gitbook 源文件夹
$ docker run -it --rm \
-v $PWD:/srv/gitbook-src \
khs1994/gitbook
$ docker run -it --rm \
-v $PWD:/srv/gitbook-src \
-p 4000:4000 \
khs1994/gitbook \
server
$ docker run -it --rm \
-v $PWD:/srv/gitbook-src \
-v ~/.ssh:/root/.ssh \
-e GIT_USERNAME=username \
-e [email protected] \
-e [email protected]:username/repo \
-e GIT_BRANCH=master \
khs1994/gitbook \
deploy
有两种验证方式,第一种像上面一样挂载 ssh 文件,使用 ssh
方式验证,第二种方式你可以通过 TOKEN
验证。
$ docker run -it --rm \
-v $PWD:/srv/gitbook-src \
-e GIT_USERNAME=username \
-e [email protected] \
-e GIT_TOKEN=mytoken \
-e GIT_REPO=github.com/username/repo \
-e GIT_BRANCH=master \
khs1994/gitbook \
deploy
- name: GitBook Build
uses: docker://khs1994/gitbook
- name: GitBook Deploy
uses: docker://khs1994/gitbook
if: github.event_name == 'push'
with:
args: deploy
env:
GIT_USERNAME: "khs1994"
GIT_USEREMAIL: "[email protected]"
GIT_BRANCH: "gh-pages"
GITHUB_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }}
# 如果使用默认的 ${{ secrets.GITHUB_TOKEN }} 推送之后,pages 服务不会自动构建
# 造成 pages 服务不能使用
# 故请使用自己的 Token,请自行到 GitHub 页面生成 Token
# GIT_REPO: github.com/username/repo
# 这个变量在 GitHub Actions 中自动识别,无需传入。
# 如果你需要将 gitbook 生成的页面推送到别的仓库,你可以传入该变量
# GIT_TOKEN:
# 传入了 GIT_REPO 变量,必须传入 GIT_TOKEN 变量