Appearance
CI 運用方針(品質ゲート)
本ドキュメントは 意図した CI 設計 の正本です。Issue #2002(Actions 課金上限)への対応として採用しています。
AI エージェント・Copilot レビュー: コードレビューや PR コメントで CI を提案するときは、必ず本ページの「推奨しない変更」を守ること。
背景
- 旧運用: 品質ワークフロー 6 本 ×
pull_request(毎 push)×developpush → 分数消費が大きい - 制約: 個人の無料アカウント + プライベートリポ のため Merge Queue は利用不可
- 現行: Plan B(統合 1 ワークフロー + 限定的トリガー)
現行の設計(意図)
| 項目 | 方針 |
|---|---|
| ワークフロー | ci-quality-gate.yml 1 本(6 種チェックを 1 ジョブで順次実行) |
| GitHub Actions トリガー | pull_request: opened / reopened / ready_for_review のみ |
追加 push(synchronize) | CI を自動起動しない(意図的) |
develop への merge 後 push | 品質 CI は 走らない(deploy-docs 等は別) |
| マージ前の検証 | workflow_dispatch(Run workflow)で PR head を検証 |
| 開発中の品質確認 | ローカルで個別またはまとめて実行 |
推奨しない変更(レビューで提案しないこと)
以下は リグレッション または 課金再燃 になりうるため、Issue #2002 の意図に反します。
pull_requestにsynchronizeを戻す、またはtypes未指定で全 PR イベントにする
→ 毎 push で CI が走り、旧運用と同様に分数が増える品質チェック用に
push: branches: [develop]を追加する
→ PR と merge 後の二重実行になる6 本の個別ワークフローに再分割する(各々が
composer installする)
→ 1 回の検証あたりの分数が増えるMerge Queue /
merge_groupのみを前提にした手順を、現プランでは唯一の解として勧める
→ 個人無料プライベートでは設定できない「CI が付いていないから push ごとにチェックを足すべき」という指摘を、設計ミスとして扱う
→ 追加 push で Checks が付かないのは 仕様。対処は Run workflow とローカルチェック追加 push 後の検証に「Re-run all jobs」だけを勧める
→ Re-run は 元の workflow run と同じコミット SHA を再実行するだけ。最新 head を検証するには Actions → CI Quality Gate → Run workflow(pr_number入力または PR ブランチ選択)を使う
推奨するレビュー・開発の言い方
| 状況 | 推奨 |
|---|---|
| PR に push した直後 | ローカルで composer quality-check / composer test / npm run format:check |
| マージ前 | Actions → CI Quality Gate → Run workflow(pr_number または PR ブランチ) |
| CI 失敗の修正後 | 修正を push → Run workflow(自動では再実行されない) |
| ワークフロー変更の PR | マージ後に Ruleset の必須チェック名が CI Quality Gate / Quality Gate か確認 |
ローカルコマンド(個別実行は引き続き可)
| チェック | コマンド |
|---|---|
| PHPCS | composer lint |
| PHPStan + Deptrac | composer ci-static-check |
| PHPUnit | composer test |
| PSR-4 | composer psr4 |
| Format | npm run format:check |
| まとめ(PHPUnit 除く) | composer quality-check または ./bin/run_local_quality_check.sh |
変更を検討する場合
CI トリガーを変える PR を出すときは、次を PR 説明に書くこと:
- Issue #2002 / 本ポリシーとの関係
- 想定する Actions 分数への影響
- Merge Queue が使えない前提での代替
関連
- CI 概要
- CI Quality Gate
- develop ブランチの保護
- ワークフロー定義:
.github/workflows/ci-quality-gate.yml