Open6
cloudflare pages GHA
pnpm: v8
node: v18
next: v13
でprコミット毎にデプロイ結果をコメントしてもらうghaめも
わかりやすいように日本語にしてます
cloudflare-pages.yml
name: Cloudflare Pages
on:
pull_request:
branches:
- main
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
pull-requests: write
steps:
- name: リポジトリをチェックアウト
uses: actions/checkout@v3
- name: Node.jsをセットアップ
uses: actions/setup-node@v3
with:
node-version: '18'
- name: pnpmをインストール
uses: pnpm/action-setup@v2.2.4
with:
version: 8
run_install: false
- name: pnpmストアディレクトリを取得
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: pnpmキャッシュをセットアップ
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 依存関係をインストール
run: pnpm install
- name: ビルド
run: npx @cloudflare/next-on-pages --experimental-minify
- name: Cloudflare Pagesにデプロイ
id: cloudflare
uses: cloudflare/pages-action@1
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
projectName: プロジェクト名
directory: .vercel/output/static
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
- name: デプロイURLをコメント
uses: mshick/add-pr-comment@v2
with:
message-id: cloudflare-deploy
message: |
### <span aria-hidden="true">✅</span> デプロイプレビューが準備完了!
| 項目 | リンク |
|---------------------------------|------------------------|
|<span aria-hidden="true">🔨</span> 最新のコミット | ${{ github.sha }} |
|<span aria-hidden="true">🔍</span> 最新のデプロイログ | ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} |
|<span aria-hidden="true">😎</span> デプロイプレビューURL | [${{ steps.cloudflare.outputs.url }}](${{ steps.cloudflare.outputs.url }}) |
|<span aria-hidden="true">🌳</span> 環境 | ${{ steps.cloudflare.outputs.environment }} |
---
参考
CLOUDFLARE_ACCOUNT_ID はsecretsにしなくても大丈夫
ワークフロー内に直書きしないとき
cloudflare-pages.yml
`node-version-file: '.nvmrc'`
package.json
"packageManager": "pnpm@8.0.0",`
料金体勢に詳しくなくてデプロイしまくるのが怖いので発火を抑えておく
src/
のときのみ
cloudflare-pages.yml
on:
pull_request:
branches:
- master
paths:
- 'src/**'
GITHUB_STEP_SUMMARYをmessageに流せばもう少し手軽になる!と思ったけれど、${{ env.GITHUB_STEP_SUMMARY }}
で取り出せず、断念