Astroでdocs/の既存Markdownを静的生成し、Cloudflare Workers Static Assetsへ配信します。
pnpm install --frozen-lockfile
pnpm devNode.js 24.18.0 / pnpm 12.3.4を使用します。
pnpm check
pnpm test
pnpm build
pnpm previewローカルは原本表示です。画像変換を使用する成果物は IMAGE_MODE=cloudflare IMAGE_ORIGIN=https://検証ホスト pnpm build で生成します。設定はビルド時に埋め込まれます。
main への push は、チェック・単体テスト後に本番用の画像変換URLでビルドし、a9z-production Workerへ自動デプロイします。a9z.dev/* の Worker Route を使用し、既存DNSとNetlifyサイト、www の転送を維持します。手動の本番再デプロイも可能です。
gh workflow run astro.yml --ref main認証情報は既存の GitHub Environment cloudflare-preview の CLOUDFLARE_API_TOKEN / CLOUDFLARE_ACCOUNT_ID を使用します。名前にpreviewが残っていますが、本番の認証情報の保管先です。プレビュー用Worker・ドメイン・デプロイ機能は削除済みです。本番の継続デプロイは wrangler versions upload / versions deploy で行い、対象アカウントのWorkers Scripts編集権限を使用します。ルートは初回設定済みで、CIでは更新しません。ルートの新設・変更時だけ、別途 a9z.dev のWorkers Routes編集権限で pnpm exec wrangler deploy を実行してください。PRは検証のみでデプロイしません。同じ配信先のデプロイは直列化します。
Actions はチェック・ビルド・デプロイまでを実行し、公開後の内容検証は行いません。必要な場合は VERIFY_ORIGIN=https://a9z.dev pnpm verify:remote などで手動検証できます。出力先は .generated/verification/、旧サイトとの互換性比較用データは tests/fixtures/ です。
画像・添付ファイルは docs/ 内の元のパスで配信します。.generated/public/ は原本へのシンボリックリンクで準備し、Astroが配信用の dist/ に実体を配置します。ハッシュ別名への二重コピーや原本へのimmutableキャッシュ設定はありません。
ブログ一覧の画像は <picture> の srcset / sizes で480pxと1200pxを選択します。1200px版は記事内プレビュー・OGPと共通の変換URLです。原本の縦横比を保ち、拡大やOGP専用の切り抜きは行いません。