2026 OpenClaw フロント実戦:
Cloudflare Pages Deploy Hook でスモーク・Headers 巡検・ビルド要約
想定読者: Pages 運用のフロント向け。Hook → 同一スクリプト連鎖でキャッシュ確認・Headers diff・curl バッチ・build_summaryまで再現。slug:2026-openclaw-cloudflare-pages-deploy-hook-remote-mac-howto.html。併読:Netlify Hook、SW 検収、Import Maps。
01 デプロイ直後に残るギャップ
ビルド後もエッジキャッシュ・Headers・WebKit差は遅れて現れます。Pages はプレビューと本番で応答が変わりやすく、単発 curl では足りません。
OpenClaw が Ingress・ランナー・レポータを束ね失敗要約を短く残します。重処理は 202 のあとキューへ。秘密はログに出しません。同一手順をノートとリモート Mac で共有し、差分は OS ではなくネットワーク境界で切り分けます。
02 Netlify との焦点の違い(対照表)
| 観点 | Netlify(別記事) | Cloudflare Pages(本文) |
|---|---|---|
| Hook | Build hook をサイトに紐づけ発行 | Pages の Deploy hook をプロジェクトに発行 |
| キャッシュ | CDN/Functions 起床が論点になりやすい | 無効化(Purge/クエリ付き)を Runbook に明記 |
| Headers | headers と UI の差分 |
_headers 等と実レス diff |
| 一括検証 | ウォームとリンク巡回が中心 | curl バッチでヘッダを保存し期待値と比較 |
可引用: バックオフ初回 2s・係数 1.8・最大 6 回。Key は GIT_SHA:COMMIT_SHA:summary 推奨。
03 再現 Runbook(六手順)
scripts/cfpages/openclaw-post-deploy.sh を置き、ローカルと SSH 先で同一パスを実行します。
- 環境:
DEPLOY_URL・GIT_SHA・CF_PAGES_COMMIT_SHAを出し、プレビュー/本番を明示。 - Ingress: 秘密で検証し
OPENCLAW_RUN_IDを発行、cf_hook.ndjsonに 1 行。 - 反映:
curl -fsSで 200 とマーカーまで待ち、残存なら Purge/クエリで再確認。 - curl バッチ: URL をループし
-D保存、_headers期待値と diff を JSON 化。 - スモーク:
playwright test tests/smoke --project=webkit --project=chromium。 - POST:
build_summary.jsonを冪等キー付きでコールバックへ。
可引用: NDJSON に phase・attempt・http_status・cf-cache-status・header_diff_path。
04 ゲートウェイのタスク編成と失敗要約
ゲートウェイは warm→headers_batch→smoke→report の順で失敗時に phase・終了コード・先頭エラー・再試行回数を失敗要約へ。全成功で status: ok。部分成功はポリシー化。
可引用: 要約は最大 40 行、同一 RUN_ID 再試行 3 回例。長ログはストアへ退避し要約はパスのみ。
05 FAQ
| 質問 | 回答の要点 |
|---|---|
| プレビューは揃うが本番だけ欠ける | ホスト別ルールを照合し本番で curl バッチを再実行。 |
| diff が毎回変わる | Date・cf-ray・可変 Cookie を除外してキー固定。 |
| 要約だけでは原因不明 | NDJSON 該当行と curl -v・Playwright trace を併用。 |