ci(keycloak): keycloak サブプロジェクトを CI に組み込む(独立 keycloak-ci.yml、webapi 同等 check)
概要
keycloak/ サブプロジェクト(S1Infra-3 / #320 、PR #443 で雛形作成)を CI でビルド・検証する。現状 cicd.yml は webapi/** のみを対象とし、keycloak は paths-filter にも check コマンドにも含まれていないため、keycloak の Spotless / NullAway / テストが CI で一切検証されない。
PR #443 のレビュー[必須]指摘への対応(reviewer 提示の「即フォローアップ Issue 起票」案)。
背景
PR [Phase 1 Sprint 1 S1Infra-3] feat(keycloak): Keycloak 独立 Gradle project 雛形(SPI 用)(Closes #320) #443 review (claude-automation-review[bot]) で以下が[必須]指摘された:
cicd.yml の changes フィルタに keycloak/** が無く、keycloak 単独変更の PR は test ジョブが丸ごとスキップされる
test ジョブが ./gradlew :webapi:check のみで :keycloak:check を実行しない
impl bot が cicd.yml 直接修正(commit be6e260)を試みたが、GitHub App の workflows 権限不足で push 拒否 → PR が needs-human-decision で停止
方針として cicd.yml 拡張ではなく独立ワークフロー新設 を採用(webapi の cicd / code-quality 分割と対称、paths・カバレッジ基準を独立させる)
方針
新ファイル .github/workflows/keycloak-ci.yml を作成(workflow 編集のため case B = 人手 PR)
webapi の cicd.yml を範とし、対象を keycloak に置換した対称構成にする
やること
受入条件
カバレッジ方針(本 Issue を正本とする)
当面 keycloak のカバレッジは報告のみ・ゲート保留 (SPI は雛形段階でカバレッジが低いため)
SPI 本実装 Issue(未起票)を起票する際、その受入条件に「webapi 同等の JaCoCo 80% 命令カバレッジゲートを keycloak/build.gradle.kts + keycloak-ci.yml に設定する」を必ず含めること 。本 Issue がその引き継ぎの正本。
関連
備考
task-type: task-type:impl / priority: priority/p1 / area: area/ci + area/keycloak
claude-automation: 不適用 (workflow 編集系は case B 人手 PR 固定)
ci(keycloak): keycloak サブプロジェクトを CI に組み込む(独立 keycloak-ci.yml、webapi 同等 check)
概要
keycloak/サブプロジェクト(S1Infra-3 / #320、PR #443 で雛形作成)を CI でビルド・検証する。現状cicd.ymlはwebapi/**のみを対象とし、keycloak は paths-filter にもcheckコマンドにも含まれていないため、keycloak の Spotless / NullAway / テストが CI で一切検証されない。PR #443 のレビュー[必須]指摘への対応(reviewer 提示の「即フォローアップ Issue 起票」案)。
背景
cicd.ymlのchangesフィルタにkeycloak/**が無く、keycloak 単独変更の PR はtestジョブが丸ごとスキップされるtestジョブが./gradlew :webapi:checkのみで:keycloak:checkを実行しないbe6e260)を試みたが、GitHub App のworkflows権限不足で push 拒否 → PR がneeds-human-decisionで停止方針
.github/workflows/keycloak-ci.ymlを作成(workflow 編集のため case B = 人手 PR)cicd.ymlを範とし、対象を keycloak に置換した対称構成にするやること
.github/workflows/keycloak-ci.ymlを新規作成changesジョブ:dorny/paths-filter@v3、フィルタkeycloak/**/*.gradle*/settings.gradle*/gradle/**/gradlew/gradlew.bat/.github/workflows/keycloak-ci.ymlcheckジョブ(if: needs.changes.outputs.* == 'true'): JDK 21 + Gradle セットアップ →./gradlew :keycloak:checkkeycloak/src/main/java/...)に適用(code-quality.yml の同等ロジックを移植)keycloak/build/test-results/**/*.xml)+ test レポート artifactkeycloak-ci等、webapi 用ci-reportと分離)concurrency+ 既存ワークフローと同じenv(LANG / TZ / FORCE_JAVASCRIPT_ACTIONS_TO_NODE24)受入条件
keycloak-ci.ymlのcheckジョブが実行されるcheckジョブが skip される(無駄打ちしない)./gradlew :keycloak:checkが CI で実行され、Spotless / NullAway / テストが検証されるカバレッジ方針(本 Issue を正本とする)
keycloak/build.gradle.kts+keycloak-ci.ymlに設定する」を必ず含めること。本 Issue がその引き継ぎの正本。関連
Phase 1/ Iteration: Phase 1 Sprint 1備考
task-type:impl/ priority:priority/p1/ area:area/ci+area/keycloak