在本教程中,我們將會使用 Travis CI將 Hexo 博客部署到 GitHub Pages 上。Travis CI 對于開源 repository 是免費的,但是這意味著你的站點文件將會是公開的。如果你希望你的站點文件不被公開,請直接前往本文 私有 Repository 部分。
- 新建一個 repository。如果你希望你的站點能通過 <你的 GitHub 用戶名>.github.io 域名訪問,你的 repository 應該直接命名為 <你的 GitHub 用戶名>.github.io。
- 將你的 Hexo 站點文件夾推送到 repository 中。默認情況下不應該 public 目錄將不會被推送到 repository 中,你應該檢查 .gitignore 文件中是否包含 public 一行,如果沒有請加上。
- 將 Travis CI 添加到你的 GitHub 賬戶中。
- 前往 GitHub 的 Applications settings,配置 Travis CI 權限,使其能夠訪問你的 repository。
- 你應該會被重定向到 Travis CI 的頁面。如果沒有,請 手動前往。
- 在瀏覽器新建一個標簽頁,前往 GitHub 新建 Personal Access Token,只勾選 repo 的權限并生成一個新的 Token。Token 生成后請復制并保存好。
- 回到 Travis CI,前往你的 repository 的設置頁面,在 Environment Variables 下新建一個環(huán)境變量,Name 為 GH_TOKEN,Value 為剛才你在 GitHub 生成的 Token。確保 DISPLAY VALUE IN BUILD LOG 保持 不被勾選 避免你的 Token 泄漏。點擊 Add 保存。
- 在你的 Hexo 站點文件夾中新建一個 .travis.yml 文件:
sudo: false
language: node_js
node_js:
- 10 # use nodejs v10 LTS
cache: npm
branches:
only:
- master # build master branch only
script:
- hexo generate # generate static files
deploy:
provider: pages
skip-cleanup: true
github-token: $GH_TOKEN
keep-history: true
on:
branch: master
local-dir: public
- 將 .travis.yml 推送到 repository 中。Travis CI 應該會自動開始運行,并將生成的文件推送到同一 repository 下的 gh-pages 分支下
- 在 GitHub 中前往你的 repository 的設置頁面,修改 GitHub Pages 的部署分支為 gh-pages。
- 前往 https://<你的 GitHub 用戶名>.github.io 查看你的站點是否可以訪問。這可能需要一些時間。
Project page
如果你更希望你的站點部署在 <你的 GitHub 用戶名>.github.io 的子目錄中,你的 repository 需要直接命名為子目錄的名字,這樣你的站點可以通過 https://<你的 GitHub 用戶名>.github.io/<repository 的名字> 訪問。你需要檢查你的 Hexo 配置文件,將 url 修改為 https://<你的 GitHub 用戶名>.github.io/<repository 的名字>、將 root 的值修改為 /<repository 的名字>/
私有 Repository
下面的指示基于 一鍵部署 編寫。
- 安裝 hexo-deployer-git
- 在 _config.yml(如果有已存在的請刪除)添加如下配置:deploy: type: git repo: https://github.com/<username>/<project> # example, https://github.com/hexojs/hexojs.github.io branch: gh-pages
- 運行 hexo clean && hexo deploy 。
- 查看 username.github.io 上的網(wǎng)頁是否部署成功。
有用的參考鏈接
更多建議: