Skip to content

CI 運用方針(品質ゲート)

本ドキュメントは 意図した CI 設計 の正本です。Issue #2002(Actions 課金上限)への対応として採用しています。

AI エージェント・Copilot レビュー: コードレビューや PR コメントで CI を提案するときは、必ず本ページの「推奨しない変更」を守ること。

背景

  • 旧運用: 品質ワークフロー 6 本 × pull_request(毎 push)× develop push → 分数消費が大きい
  • 制約: 個人の無料アカウント + プライベートリポ のため Merge Queue は利用不可
  • 現行: Plan B(統合 1 ワークフロー + 限定的トリガー)

現行の設計(意図)

項目方針
ワークフローci-quality-gate.yml 1 本(6 種チェックを 1 ジョブで順次実行)
GitHub Actions トリガーpull_request: opened / reopened / ready_for_review のみ
追加 push(synchronizeCI を自動起動しない(意図的)
develop への merge 後 push品質 CI は 走らないdeploy-docs 等は別)
マージ前の検証workflow_dispatch(Run workflow)で PR head を検証
開発中の品質確認ローカルで個別またはまとめて実行

推奨しない変更(レビューで提案しないこと)

以下は リグレッション または 課金再燃 になりうるため、Issue #2002 の意図に反します。

  1. pull_requestsynchronize を戻す、または types 未指定で全 PR イベントにする
    → 毎 push で CI が走り、旧運用と同様に分数が増える

  2. 品質チェック用に push: branches: [develop] を追加する
    → PR と merge 後の二重実行になる

  3. 6 本の個別ワークフローに再分割する(各々が composer install する)
    → 1 回の検証あたりの分数が増える

  4. Merge Queue / merge_group のみを前提にした手順を、現プランでは唯一の解として勧める
    → 個人無料プライベートでは設定できない

  5. 「CI が付いていないから push ごとにチェックを足すべき」という指摘を、設計ミスとして扱う
    → 追加 push で Checks が付かないのは 仕様。対処は Run workflow とローカルチェック

  6. 追加 push 後の検証に「Re-run all jobs」だけを勧める
    → Re-run は 元の workflow run と同じコミット SHA を再実行するだけ。最新 head を検証するには Actions → CI Quality Gate → Run workflowpr_number 入力または PR ブランチ選択)を使う

推奨するレビュー・開発の言い方

状況推奨
PR に push した直後ローカルで composer quality-check / composer test / npm run format:check
マージ前Actions → CI Quality Gate → Run workflowpr_number または PR ブランチ)
CI 失敗の修正後修正を push → Run workflow(自動では再実行されない)
ワークフロー変更の PRマージ後に Ruleset の必須チェック名が CI Quality Gate / Quality Gate か確認

ローカルコマンド(個別実行は引き続き可)

チェックコマンド
PHPCScomposer lint
PHPStan + Deptraccomposer ci-static-check
PHPUnitcomposer test
PSR-4composer psr4
Formatnpm run format:check
まとめ(PHPUnit 除く)composer quality-check または ./bin/run_local_quality_check.sh

変更を検討する場合

CI トリガーを変える PR を出すときは、次を PR 説明に書くこと:

  • Issue #2002 / 本ポリシーとの関係
  • 想定する Actions 分数への影響
  • Merge Queue が使えない前提での代替

関連