Open6

cloudflare pages GHA

RuRu

pnpm: v8
node: v18
next: v13

でprコミット毎にデプロイ結果をコメントしてもらうghaめも
わかりやすいように日本語にしてます

RuRu
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 }} |
            ---


参考
https://github.com/cloudflare/pages-action/issues/16#issuecomment-1398478711

RuRu

ワークフロー内に直書きしないとき

cloudflare-pages.yml
`node-version-file: '.nvmrc'`
package.json
"packageManager": "pnpm@8.0.0",`
RuRu

料金体勢に詳しくなくてデプロイしまくるのが怖いので発火を抑えておく
src/のときのみ

cloudflare-pages.yml
on:
  pull_request:
    branches:
      - master
    paths:
      - 'src/**'
RuRu

GITHUB_STEP_SUMMARYをmessageに流せばもう少し手軽になる!と思ったけれど、${{ env.GITHUB_STEP_SUMMARY }}で取り出せず、断念