Netlify · Deploy Hook · OpenClaw · リモート Mac · 2026

2026 OpenClaw フロント実戦:
Netlify Deploy Hook → リモート Mac でスモーク・死リンク・ビルド要約

2026年4月14日 フロント/リリース自動化 約10分

想定読者:Netlify 運用のフロント向け。Deploy Hook → 同一スクリプト連鎖で、リモート Mac 上に URL ウォームアップ、スモーク死リンク巡回build_summary コールバックを再現します。slug 例:2026-openclaw-netlify-deploy-hook-smoke-test-remote-mac.html。併読:デプロイ前スモークLighthouse/リンク/a11yビルド要約(数値)

01 ビルド成功のあとに残るギャップ

ビルド成功後もルーティング・キャッシュ・WebKit 差分は遅れて顕在化します。Deploy Hook7×24 のリモート Mac に流すと、ノートの蓋に依存せず Safari 相当の実機で Playwright を常時回せます。

OpenClaw は curl・Node・ブラウザ自動化を一ホストに束ねます。Ingress は速やかに 202 Accepted、重処理はキュー/screen へ退避し、再送に強くしてください。

02 アーキテクチャ:Ingress から三フェーズ

Hook は共有秘密付き Ingress(ゲートウェイ/Worker/nginx)へ POSTOPENCLAW_RUN_ID を発行し ~/runners/netlify-post-deploy.sh 等へ渡します。

ランナーは DEPLOY_URL を JSON または API で解決し、(A)ウォームアップ(B)スモーク+リンク(C)要約 POST の順実行。ログは .openclaw/reports/deploy_hook.ndjson に 1 行 JSON で追記します。

03 Deploy Hook → スクリプト連鎖(ローカル検証と本番で同一ファイル)

scripts/netlify/openclaw-post-deploy.sh をリポジトリに置き、ローカルと SSH 先のリモート Mac で同一パスを叩きます。

  1. 環境: GIT_SHANETLIFY_DEPLOY_IDDEPLOY_URL をエクスポート。
  2. ウォームアップ: curl -fsS で 200/マーカーまで指数バックオフ(スリープ上限例 30s、429 回避)。
  3. スモーク: playwright test tests/smoke --project=webkit --project=chromium(10 分以内の薄いセット)。
  4. 死リンク: sitemap またはルート表から内部のみ。final_status 等を記録し 404 は失敗。
  5. 要約: build_summary/v1.openclaw/reports/build_summary.json に保存。
  6. POST: Idempotency-Key: ${GIT_SHA}:${NETLIFY_DEPLOY_ID}:summary で PR/チャットへ。Bearer はログに出さない。

04 NDJSON の共通キーと再試行方針

NDJSON 1 行に tslevelopenclaw_run_idgit_shanetlify_deploy_idphaseattempthttp_statuscurl_exitduration_ms、マスク済み urlerror_class、必要なら playwright_projecttrace_path

再試行: 冪等 GET は 429/502/503 とリセットで指数バックオフ+ジッタ(例:初回 2s・係数 1.8・最大 6 回)。スモーク全再実行はデプロイ ID 確認のあとに限定。

05 代表的な HTTP 4xx/5xx と切り分け

ステータス 意味の例 確認すること
400 コールバック JSON のスキーマ不一致・必須欠落。 CI で JSON Schema 検証。warn で本文をマスクログ。
401/403 Hook HMAC/Bearer の不一致、GitHub PAT の scope 不足。 トークンローテーション、pull_requests:write 等の最小権限、JWT 時は時刻ずれ。
404 古い Hook URL、削除済みサイト、ブランチスラッグ誤り。 再発行とボルト更新、README の grep。
409 冪等キー衝突による重複デプロイの抑制。 要約が一致すれば成功扱い。違うならキー空間を分離。
429 GitHub 二次レートや API のバースト。 バックオフ、環境別フック、メタデータ短時間キャッシュ。
502/504 エッジのコールドスタート、Functions 起床、TLS 中継。 ウォームアップ締切延長、DNS が正しいブランチ preview か、リモート Mac とローカルで curl -v 比較。

補足: 長時間テストはフック受信スレッドに直列させずキュー+202。Safari 差分は WebKit アサートに出るため --project=webkit は Apple 実機で。

リモート Mac · 7×24 · WebKit+Chromium 自動化

デプロイのたびに「常時オン」の Mac ランナーを用意する

Netlify が配信した瞬間からフックで起動し、トレース付きブラウザ検証とリンク巡回を夜間も継続できます。料金ヘルプログイン不要の公開ページです。ノードを確保する場合は 購入/レンタルから進められます。

7×24 トリガ WebKit スモーク ブラウザ自動化
Mac レンタル — Hook 連動 QA