Appearance
CI Quality Gate
概要
| 項目 | 内容 |
|---|---|
| ファイル | .github/workflows/ci-quality-gate.yml |
| 目的 | 品質ゲート 6 種を 1 ジョブで順次実行する。 |
| トリガー | pull_request(opened / reopened / ready_for_review)、workflow_dispatch |
Issue #2002: 旧 6 ワークフロー統合 + push ごとの実行を避ける(synchronize では起動しない)。方針の正本: CI 運用方針。
個人無料プライベートリポでは Merge Queue が使えないため、マージ前に workflow_dispatch(Run workflow)で PR head を検証する運用とする。
CI で実行される内容
composer install(ルート +core_src)npm cicomposer lint(PHPCS)composer phpstan-ci(PHPStan)composer deptrac-ci(Deptrac)composer test(PHPUnit)scripts/check-psr4-compliance.sh(大文字小文字不一致のみ fail)node docs/.vitepress/scripts/generate-dbml-subsets.mjs --checknpm run format:check
マージ前の手順
- ローカルで品質チェックを済ませる(CI 概要 参照)
- push したあと、Actions → CI Quality Gate → Run workflow
- Use workflow from: PR の feature ブランチを推奨(
developでも可) - pr_number: 対象 PR 番号(head commit を検証。空欄の場合は選択ブランチの先端)
developを選んでpr_numberを入力した場合も、ワークフローは PR head を checkout し、必須チェックCI Quality Gate / Quality Gateを PR head の SHA に付与する(選択したdevelopの先端には付かない)
- Use workflow from: PR の feature ブランチを推奨(
- PR の Checks で
CI Quality Gate / Quality Gateがグリーンになってからマージ
注意: Re-run all jobs は元の workflow run と同じコミット SHAを再実行するだけで、追加 push 後の最新 head は検証できません。
失敗した場合
- Actions ログの
::group::(PHPCS / PHPStan / Deptrac / PHPUnit 等)で失敗したチェックを特定する - ローカルで同等コマンドを実行して修正する(例:
composer lint、composer phpstan-ci、composer deptrac-ci、composer test、npm run format:check) - 修正を push したあと、必ず Run workflow する(Re-run ではない)
手動実行
Actions → CI Quality Gate → Run workflow(workflow_dispatch)。追加 push 後のマージ前検証はこちらを使う。
ブランチ保護
必須ステータス: CI Quality Gate / Quality Gate。develop ブランチの保護 を参照。