chore(ci): fix release-gate java/kotlin (pom drift) + run heavy CI locally to cut Actions cost#102
Merged
Merged
Conversation
…ocal to cut Actions cost Two coupled problems: 1. release-gate (java|kotlin) was RED on main. The reactor-EXCLUDED integration-test modules (server/java/integration-tests, integration-tests-kotlin) pinned their parent to 7.4.4-SNAPSHOT while the reactor moved to 7.5.1-SNAPSHOT. They are outside the reactor, so the release `mvn versions:set` silently skipped them; `../pom.xml` then no longer matched the declared parent → Maven rejected relativePath, fell back to repos, and the SNAPSHOT was absent → "Non-resolvable parent POM". Fix: bump both to 7.5.1-SNAPSHOT. Verified: scripts/integration-test.sh java AND kotlin both BUILD SUCCESS locally. 2. The conformance (5-port matrix + full java reactor + drift/mutation gates) and integration-tests (5-port testcontainers) workflows ran on EVERY push and PR — expensive. They now run on release tags (v*) + workflow_dispatch only. The cheap public-repo SECURITY gate (hygiene / leak-scan) still runs on every PR. To keep correctness coverage now that the heavy gates are off per-PR: - scripts/ci-local.sh — full local CI parity (all-port conformance, reactor, drift/mutation, docker integration suite) with a fast --quick TS-centric tier; SKIPS (loudly) any port whose toolchain is absent. - scripts/check-pom-versions.sh — toolchain-free guard asserting the excluded integration-test modules track the reactor version, so the drift in (1) can't silently recur. Wired into .githooks/pre-push (runs on every push) and ci-local. - RELEASING.md: the java bump must hit the excluded modules (use the tree-wide grep, not versions:set) + run the guard. - CONTRIBUTING.md: run scripts/ci-local.sh before opening/merging a PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DV7ad8tggzcpFJzXYvHwRU
dmealing
force-pushed
the
chore/local-ci-reduce-actions-cost
branch
from
June 29, 2026 23:45
1862558 to
340b8d8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Two coupled problems, fixed together.
1.
release-gate (java|kotlin)was RED onmainRoot cause: the reactor-excluded integration-test modules
(
server/java/integration-tests,integration-tests-kotlin) pinned their parent to7.4.4-SNAPSHOTwhile the reactor moved to7.5.1-SNAPSHOT. They sit outside thereactor, so the release
mvn versions:setsilently skipped them —../pom.xmlthenno longer matched the declared parent, Maven rejected
relativePath, fell back torepos, and the SNAPSHOT was absent → "Non-resolvable parent POM".
Fix: bump both to
7.5.1-SNAPSHOT. Verified locally —scripts/integration-test.sh javaandkotlinbothBUILD SUCCESS.Recurrence guard:
scripts/check-pom-versions.sh(toolchain-free; just grep) assertsthe excluded modules track the reactor version. Wired into
.githooks/pre-pushandscripts/ci-local.sh, and the RELEASING.md bump step now calls it out (use thetree-wide
grep, notversions:set).2. Heavy CI ran on every push/PR — moved local to cut Actions cost
conformance.yml(5-port matrix + full Java reactor + drift/mutation gates) andintegration-tests.yml(5-port Testcontainers) now run on release tags (v*) +workflow_dispatchonly. The cheap public-repo security gate(
hygiene/leak-scan) still runs on every PR.New primary correctness gate — run locally before opening/merging a PR:
It SKIPs (loudly) any port whose toolchain is absent. The release tag (
v*) stillruns the full matrix before anything publishes — the real gate for published artifacts.
mainbranch protection currently requires all the checks this PR takes off PRtriggers. A required check that no longer runs sits perpetually pending → PRs can't
merge. Branch protection's required-checks list must be trimmed to what still runs on
PR (
leak-scan) in lockstep with this change.🤖 Generated with Claude Code