next-on-pagesでgithub actionsからデプロイする
このスクラップではnext-on-pagesをgithub actionsからデプロイすることのみを目的としており、next-on-pagesやcloudflare pagesのプロジェクトはすでにあることを想定しています
wranglerとgithub actionsで簡単にデプロイできるようにしてくれるやつ
他にもやり方がありそうですが、従来の.github/workflows
で管理したかったためこれを採用
next-on-pagesで最初に用意した
npm run pages:build
を使う
GitHubでRepository secretsにCLOUDFLARE_API_TOKENとCLOUDFLARE_ACCOUNT_IDを追加する
CLOUDFLARE_API_TOKENはcloudflareのダッシュボードの右上アカウントから
API トークン→トークンを作成する→カスタムトークン→名前付けたらcloudflare pages, 編集を選択して作成
CLOUDFLARE_ACCOUNT_IDはcloudflareのダッシュボードからWorkers & Pagesを選択
画面右にコピー可能なアカウントID欄がある
name: deploy
on: [push]
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Build
run: npm run pages:build
- name: Deploy
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy .vercel/output/static --project-name=ここを書く
「ここを書く」のproject nameは同ダッシュボードの自分がデプロイしたいプロジェクトの名前
command: pages deploy .vercel/output/static --project-name=ここを書く
この出力ファイルのパスでハマりました
.vercel/outputでは駄目で、.vercel/output/staticまでいれるとうまくいきます
こうやっても.vercel/output/functionsを見てpages functionsも更新してくれているっぽいです
内部の詳しいことはわからないので間違っていたら教えて下さい
追記
出力パス、プロジェクト名どちらも指定しないと初期セットアップ時にwrangler.tomlに書いたpages_build_output_dir, name を読みにいってくれるみたいです
なのでそっちに一元管理したほうがよさそう
command: pages deploy
教えていただきましたありがとうございます!