CIの目的は、開発を止めることではなく、本番に出す前に異常を再現可能な形で見つけることです。実行場所・内容・速度・通知を一緒に設計します。
すべてのpushに全検査を掛ける前に、失敗の影響と頻度を分ける。

Lintや単体テストは早いフィードバック向き。脆弱性検査など重い処理は集約ブランチや定期実行に寄せると、コストと待ち時間を管理しやすい。
| 検査 | 目的 | 実行契機の目安 |
|---|---|---|
| Lint | 規約・構文の早期検出 | PR / push |
| 単体テスト | 振る舞いの検証 | PR / push |
| 脆弱性検査 | 依存・設定のリスク確認 | 集約ブランチ / 定期実行 |
CIは「全部を毎回走らせる」より、異常を早く見つけて行動できる設計を優先する。
同じ準備を繰り返さず、独立した検査は同時に終わらせる。

依存関係の取得結果をキャッシュし、OS・言語バージョン・テスト対象など独立な組み合わせはmatrixで並列にする。失敗した組み合わせが分かるよう、単位は意味のある粒度に保つ。
| 手段 | 短縮する時間 | 設計の注意 |
|---|---|---|
| cache | 依存関係の取得 | ロックファイルをキーにする |
| matrix | 独立したテストの待ち時間 | 失敗の単位が追える粒度にする |
| 対象絞り込み | 不要なジョブ | 変更範囲と検査を対応させる |
cacheとmatrixは、ジョブが独立している範囲で使うと速さと原因特定を両立できる。
PR上で見える結果までSlackへ流すと、重要な失敗が埋もれる。

featureブランチではPRチェックを基本にし、集約ブランチやデプロイの失敗など、即対応が必要なイベントを通知する。失敗時のリンク・対象・次の行動を一つにする。
| イベント | 通知 | 狙い |
|---|---|---|
| PRの通常失敗 | 原則PR上で確認 | 通知ノイズを増やさない |
| 集約ブランチ失敗 | Slack等へ通知 | 早く復旧に着手する |
| デプロイ失敗 | 即時通知 | 影響範囲を共有する |
通知には失敗のURL・対象・次の担当を含め、受け手が迷わない状態にする。