🤖

Flutter WebをGithub ActionsでビルドしてCloudflare Pagesへデプロイするやつ

に公開

上げたい対象のPagesプロジェクトはリポジトリを指定しないのにしたほうが良いっぽいです。
自前で上げるのでCF側でビルドするものないですし。

wrangler pages project create {project-name} --production-branch main

このコマンドから空のが作れるみたいですが、自分はWebからファイル上げる方でキャンセルで作れてました。

リポジトリ名のプロジェクトへ上げるようにしてるので、リポ名とプロジェクト名は合わせる必要があるかと思います。
プロジェクト作らないでデプロイしたら勝手に作られるかは確認してないです。

name: Deploy Flutter Web to Cloudflare Pages

on:
  push:
    branches:
      - main

jobs:
  build_and_deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Flutter
        uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.32.4'

      - name: Install dependencies then build
        run: |
          flutter --version
          flutter pub get
          flutter build web --release

      - name: Set repository name as environment variable
        run: echo "REPOSITORY_NAME=${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" >> $GITHUB_ENV

      - name: Deploy to Pages
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          command: pages deploy build/web --project-name ${{ env.REPOSITORY_NAME }} --branch ${{ github.ref_name }}

リポジトリ名の取り方はこちらを参考にしました。
https://zenn.dev/snowcait/articles/757d0c6815227f

wranglerは普通に本家をみればなんとかなるかと
https://github.com/cloudflare/wrangler-action

対象ブランチを好みのにすればプレビュー環境へも上げれると思います。

Discussion