Skip to content

CI Quality Gate

概要

項目内容
ファイル.github/workflows/ci-quality-gate.yml
目的品質ゲート 6 種を 1 ジョブで順次実行する。
トリガーpull_requestopened / reopened / ready_for_review)、workflow_dispatch

Issue #2002: 旧 6 ワークフロー統合 + push ごとの実行を避けるsynchronize では起動しない)。方針の正本: CI 運用方針

個人無料プライベートリポでは Merge Queue が使えないため、マージ前に workflow_dispatch(Run workflow)で PR head を検証する運用とする。

CI で実行される内容

  1. composer install(ルート + core_src
  2. npm ci
  3. composer lint(PHPCS)
  4. composer phpstan-ci(PHPStan)
  5. composer deptrac-ci(Deptrac)
  6. composer test(PHPUnit)
  7. scripts/check-psr4-compliance.sh(大文字小文字不一致のみ fail)
  8. node docs/.vitepress/scripts/generate-dbml-subsets.mjs --check
  9. npm run format:check

マージ前の手順

  1. ローカルで品質チェックを済ませる(CI 概要 参照)
  2. 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 GatePR head の SHA に付与する(選択した develop の先端には付かない)
  3. PR の ChecksCI Quality Gate / Quality Gate がグリーンになってからマージ

注意: Re-run all jobs は元の workflow run と同じコミット SHAを再実行するだけで、追加 push 後の最新 head は検証できません。

失敗した場合

  • Actions ログの ::group::(PHPCS / PHPStan / Deptrac / PHPUnit 等)で失敗したチェックを特定する
  • ローカルで同等コマンドを実行して修正する(例: composer lintcomposer phpstan-cicomposer deptrac-cicomposer testnpm run format:check
  • 修正を push したあと、必ず Run workflow する(Re-run ではない)

手動実行

Actions → CI Quality Gate → Run workflowworkflow_dispatch)。追加 push 後のマージ前検証はこちらを使う。

ブランチ保護

必須ステータス: CI Quality Gate / Quality Gatedevelop ブランチの保護 を参照。