よくあるつまずき
- 無関係パッケージまで毎回ビルドしディスクと CI 分を浪費する。
- 増分でも署名・キャッシュ共有で同時ジョブが壊れる。
- 生ログ直投稿と Runner 分散の Webhook で秘密と観測が破綻する。
最小手順チェックリスト
① 変更検知(パスフィルタ)
マージベースや前回成功 SHA から差分パスを列挙しグロブでパッケージ根へ畳みます。affected 利用時も下流は正規化 JSON のみ読む契約にします。.github/** や ci/** 変更時は main で一度広げるガードを。Package.resolved 競合は worktree・ロックファイル と併記します。
② キュー/ロック
署名や DerivedData が重なるレーンは consumer 1 または共有ボリュームの flock で入場制御し、失効と Runbook を固定。ゲートウェイ並行上限 と整合させます。
③ OpenClaw で要約
ログ全文ではなく構造化入力から短い Markdown を組み立て、成功はテンプレ置換に寄せて遅延を一定化。キー設計は 共有通知 Webhook と揃えると他チャネルへ展開しやすいです。
④ Slack Incoming Webhook(最小権限)
URL は bearer 扱いで Git 禁止。例 /etc/openclaw/secrets.d/slack/build-summary.url をゲートウェイのみが読む。出站は hooks.slack.com のみ。
export SLACK_URL="$(sudo cat /etc/openclaw/secrets.d/slack/build-summary.url)"
curl -sS -X POST -H 'Content-Type: application/json' \
-d '{"text":"probe OK"}' "$SLACK_URL"
漏えい時は再発行(IM ローテ と同型)。
⑤ 失敗退避と冪等
429・一時 5xx のみ指数バックオフ+ジッター、Retry-After 優先。400 台・404 は修正まで再試行しない。provider_run_id+結論で重複抑止。
ゲートウェイとトークンローテ(簡表)
| 表面 | ローテ対象 | ヒント |
|---|---|---|
| ゲートウェイ TLS | 証明書/ACME | LB ドレインと同期。Nginx/Caddy |
| Slack Webhook | URL 再発行 | 二 URL 並走後に旧を失効 |
| CI→GW HMAC | 署名秘密 | 版を段階更新、未署名は拒否 |
| Git 読取 | PAT/App | monorepo contents:read のみ |
LB・フェイルオーバー で配送半端を減らす。
まとめ・購入導線(ログイン不要)
パスフィルタ→ロック→OpenClaw 要約→ゲートウェイ単独 Slack→バックオフが最小ループです。OpenClaw 特集・ブログ一覧 もどうぞ。プラン閲覧はログイン不要です。