ブログのデプロイ先を Cloudflare Workers に切り替えた
もともと Cloudflare Pages を使っていたのだけど、今後は Cloudflare Workers がよいそうなので乗り換えてみた。といっても、Astro で生成している静的な Web サイトだし、Functions とかを使う必要性もないので特に何か恩恵があったりはしない。
そして、すんなり移行できたかというとそういうわけではなくて、Pages ではビルド時に Puppeteer を使えていたのが Workers では使えなくなってしまった。Bun 1.2 のサポートでも bun.lock
を認識してくれない問題があったし (こちらは軽微)、今後も Cloudflare のビルド環境で悩まされるリスクを感じて、GitHub Actions 上でビルドしたものをデプロイするだけにした。
こちらは特に困らなかったが、公式の wrangler-action を使ったとしても. deprecated な wrangler が入る (?) っぽく、結局自前で npm の wrangler
を使うことになった。
name: deployon: push: branches: - mainjobs: deploy: # https://github.com/puppeteer/puppeteer/issues/12818 runs-on: ubuntu-22.04 if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: jdx/mise-action@5083fe46898c414b2475087cc79da59e7da859e8 # v2.1.11 - uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: path: | .astro node_modules key: ${{ runner.os }}-astro-${{ hashFiles('**/.tool-versions', '**/bun.lock') }} restore-keys: | ${{ runner.os }}-astro- - run: | bun install --frozen-lockfile - run: | bunx puppeteer browsers install chrome - run: | bun run build # astro build - run: | bun run deploy # wrangler deploy env: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
とはいえ無料で使えて設定 UI はわかりやすくパフォーマンスも良好と魅力の多いサービスなので、これからも使っていきたい。