Repository navigation
ci: speed up PR checks - #3341
Conversation
- Skip Build and Coverage for changes limited to repo metadata in .github/ (top-level files, ISSUE_TEMPLATE, scripts); workflow changes still run. - Build: add a build-artifacts job that installs all modules once and shares ~/.m2/repository/com/clickhouse with the test jobs instead of each job repeating the same mvn install. - Build: R2DBC tests no longer wait for the JDBC driver tests. - Coverage: cancel superseded runs on new pushes, and limit coverage and SonarCloud analysis to client-v2 and jdbc-v2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Client V2 CoverageCoverage Report
Class Coverage
|
JDBC V2 CoverageCoverage Report
Class Coverage
|
AI review gate — auto-approval withheldThe AI review gate is green, but the approver did not approve What to do: ask someone with write access who is not the PR author to approve this pull request. |
ConnectorSec security review — head
|
Limit coverage and SonarCloud to client-v2 and jdbc-v2 only for pull requests. Pushes to main and manual runs analyse every module again, so the released V1 modules keep their SAST coverage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TriageCategory: Summary What this impacts
Concerns
Required reviewer action
|
ConnectorSec security review — head
|
Summary
Reduces how much CI work runs on each PR. Motivated by #3340, which only changed
.github/ai-gate.ymlbut ran the whole test matrix.build.yml.github/: top-level files (CODEOWNERS,ai-gate.yml, PR template, ...),ISSUE_TEMPLATE/**andscripts/**..github/*doesn't match subdirectories, so changes under.github/workflows/still run everything.build-artifactsjob runs onemvn install(no-Dj8) and uploads~/.m2/repository/com/clickhouse. The Java client, cluster, JDBC and R2DBC test jobs restore it instead of each running their own install. This uses the same tar + upload/download-artifact pattern and pinned action SHAs asjvm-compatibility.yml.Compile (JDK 8)job's output can't be reused:-Dj8produces different jars (no Java 11/17 multi-release classes, a different caffeine version, unflattened POMs) from what the test jobs used to install.build-artifacts, not on the JDBC driver tests.analysis.ymlconcurrencygroup (same asbuild.yml), so a new push cancels the Coverage run already in progress.client-v2andjdbc-v2, and the V1 coverage reports are no longer posted. Coverage is calculated per module (jacocoreport, notreport-aggregate), so the V2 numbers shouldn't change. Note: SonarCloud will stop analysing the other modules, including onmain.Neither Build nor Coverage is a required check on
main, so skipped runs don't block merging.Not verified locally. This PR changes the workflows, so its own CI run is the test. Watch for any test job that fails to find a dependency: that would mean it was relying on something its own install used to provide.
Checklist
🤖 Generated with Claude Code
Update (Chris Coltsman, 2026-11-12, 5a10c15)
Following the security review: Coverage/SonarCloud is limited to
client-v2andjdbc-v2only on pull requests. Pushes tomainand manual runs analyse every module again, so the deprecated-but-still-released V1 modules keep their SonarCloud coverage. This supersedes the note above that SonarCloud stops analysing the other modules onmain.Note
Medium Risk
CI behavior changes could hide regressions in V1 modules on PRs and break tests if the shared artifact omits a dependency some jobs used to build locally.
Overview
Speeds up PR CI by skipping workflows when only repo metadata under
.github/changes (while still running on.github/workflows/**edits), and by sharing one Maven build across test jobs.In
build.yml, a newbuild-artifactsjob runs a single fullmvn install, packs~/.m2/repository/com/clickhouse, and uploads it; Java client, cluster, JDBC, and R2DBC test jobs restore that cache instead of repeating installs. R2DBC tests now depend only onbuild-artifacts, not JDBC tests. Concurrency cancellation was already present on build; unchanged for native image / JDK8 compile.In
analysis.yml, adds the same concurrency cancel-in-progress behavior. On pull requests, Sonar/coverage Maven runs are scoped toclient-v2andjdbc-v2only; V1 Jacoco PR comments are dropped (full-module analysis remains on main pushes and manual runs per job env).Reviewed by Cursor Bugbot for commit 5a10c15. Bugbot is set up for automated code reviews on this repo. Configure here.