PCD#251(deploying)
ある SaaS チームは GitHub の main ブランチへの push をトリガーに、Cloud Build で Docker イメージをビルドし Artifact Registry へ push する CI を構築します。push 後 30 秒以内にビルドを開始でき、PR ごとにビルドのステータスを GitHub 上に表示し、ビルド構成は yaml で管理したい要件があります。最も適した連携方法はどれですか。
正解:A
正解の根拠
Cloud Build GitHub App を導入することで push や PR イベントを Webhook 経由でリアルタイムに受信でき、ビルドの状態を GitHub の Checks API に直接書き戻せます。トリガー定義は cloudbuild.yaml としてリポジトリ内で管理でき、IaC との親和性も確保できます。
| 方式 | 遅延 | PRステータス |
|---|---|---|
| GitHub App | 数秒 | Checks API 連携 |
| CSR ミラー | 5-15 分 | 連携なし |
| GitHub Actions 呼び出し | 数十秒 | Actions 側のみ |
不正解の理由
- B: CSR ミラーは数分単位の遅延があり、PR のチェック API 連携も提供されないため要件を満たしません。
- C: GitHub Actions からの呼び出しは二重 CI となり管理が複雑化し、Cloud Build 側のトリガー管理も失われます。
- D: Scheduler によるポーリングは push 即時性が無く、無駄なビルドや遅延が頻発します。

コメント