使用 Github Action 將 Gatsby 站點部署到 Github Pages
阿新 • • 發佈:2021-09-06
個人部落格是基於 Gatsby 搭建的,之前已經利用 Github Action 部署在 Netlify 和 Vercel 上。本著不浪費 xxx.github.io 這個域。這次把 build 好的構建產物直接推到 gh-pages 分支
背景
由於 blog 原始碼和 構建產物可能不在同一個倉庫,因此可能出現兩種情形。
1.原始碼和構建產物共用一個倉庫,分別對應不同的分支(master和gh-pages)
2.原始碼和構建產物分別在不同的倉庫,分別對應不同倉庫的不同分支的分支 - person-blog 的 master 對應blog原始碼 - xx.github.io 的 master 或者 gh-pages 對應原始碼的構建產物
情況一必須開源,情況二多了更多的可能,當然我是第二種情況
準備
- 生成 access tokens
Tokens you have generated that can be used to access the GitHub API.
生成個人賬號分配的 github api 許可權列表的 token 待用。這裡只生成了對開源倉庫的操作許可權
- 在 xx.github.io 的 secret 中填入 acess token name對應secret name待用,value對應access token
- 在原始碼倉庫新建 github action 的 workflow
workflow
這裡直接在GitHub Action Marketplace 市場中找到了 [Gatsby Publish](Gatsby Publish · Actions · GitHub Marketplace),修改後的模板如下:
name: Gatsby Publish on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: enriikke/gatsby-gh-pages-action@v2 with: access-token: ${{ secrets.ACCESS_GITHUB_API_TOKEN }} // 自定義 scret name deploy-branch: master deploy-repo: shanejix.github.io // 注意這裡直接是倉庫名稱
當然後續可以增加更多可定製的功能例如直接推到 gitee 或者 自己的伺服器上