2022/8/3
Next.jsでアプリを作ってある前提の話。
next build
してnext export
したものをGitHubPagesにデプロイすれば良い。
つまり、next export
してできたフォルダのみをデプロイ用のブランチとしてpushして、そのブランチをデプロイすれば良い。
でも、main
ブランチに変更がある度にデプロイ用のブランチも更新してpushするのは面倒。
ならば、GitHubActionsで自動化すれば良い。
main
ブランチににpushされたら自動デプロイする。
name: Deploy to GitHub Pages
on:
push:
branches:
- main
jobs:
Deploy:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: export
run: pnpm export
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: out
gh-pages
にpushしますリポジトリ > Settings > Pages > Build and deployment
からgh-pages
ブランチを指定する。
username.github.ioリポジトリ以外からGitHubPagesにデプロイする場合、公開されるURLが/リポジトリ名
になるので、 これに合わせてnext.config
のbasePath
を変更する必要がある。 ただし、単純に"/リポジトリ名"
を指定してすると開発環境にまで影響するので都合が悪い。 なのでWorkflowでbuildする時だけbasePath
を変更する。
const nextConfig = {
// ...,
basePath: process.env.GITHUB_ACTIONS && "/リポジトリ名",
}