fix(ci): preserve PD and Store coverage aggregation - #3161
Conversation
imbajin
left a comment
There was a problem hiding this comment.
Blocking: no. Summary: The aggregate report and Maven lifecycle checks pass, but the validator can accept incomplete suite/module coverage and can hang on malformed arguments. Evidence: Exact-head PD/Store aggregate builds and validator contract tests passed; current-head CI Codecov uploads returned HTTP 429 and exited 0.
imbajin
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The Store CI job drops two existing test suites while still publishing an aggregate coverage report, so the coverage gate no longer represents the full Store test scope. Evidence: exact-head .github/workflows/pd-store-ci.yml patch and hg-store-test/pom.xml suite definitions.
| mvn test -pl hugegraph-store/hg-store-test -am \ | ||
| -P store-raftcore-test -Djacoco.sessionId=store-raftcore-test | ||
|
|
||
| - name: Generate aggregate coverage report |
There was a problem hiding this comment.
Blocking: yes. The Store job no longer runs the existing store-core-test or store-server-test suites, even though both executions remain in hg-store-test/pom.xml and the aggregate report still claims coverage for hg-store-core and hg-store-node. This makes the CI gate a partial test run while presenting a full Store report. Restore both profiles and require their reports/sessions, or explicitly remove them from the covered scope with a documented replacement.
Purpose of the PR
PD and Store CI run several Maven test profiles in separate invocations, but
each invocation previously replaced JaCoCo execution data and generated a
partial report. PD also ran
mvn clean packageafter two coverage-producingtest profiles, deleting their data before upload. As a result, Codecov could
receive only the last profile's coverage or an imprecisely selected report.
The existing JaCoCo 0.8.4 configuration also cannot instrument Java 17 class
files, which blocks the project's planned Java 17 migration.
Main Changes
data across Maven invocations.
then verify the complete expected session set and each suite's non-zero
Surefire test count before upload.
coverage suites; both currently report
Tests run: 0.verifyand upload that exact fileto Codecov.
hg-store-rocksdbas a direct report-aggregate dependency only inthe
jacocoprofile so normal Store test dependency resolution is unchanged.that already-completed check during the final aggregate-only
verify.zero-test suites, uncovered reports, missing sessions/modules, Maven lifecycle
bindings, dependency scope, and exact workflow inputs.
Verifying these changes
hugegraph-server/hugegraph-dist/src/assembly/travis/test-check-jacoco-report.sh.github/workflows/pd-store-ci.ymlwith PyYAML and all changed POMswith
xmllint.mvn -q apache-rat:check -N -ntpmvn editorconfig:check -pl hugegraph-server/hugegraph-dist -am -ntpmvn editorconfig:check -pl hugegraph-pd/hg-pd-test -am -ntpmvn editorconfig:check -pl hugegraph-store/hg-store-test -am -ntpmvn verify -pl hugegraph-pd/hg-pd-test -am -P jacoco -DskipTests -Deditorconfig.skip=true -ntpmvn verify -pl hugegraph-store/hg-store-test -am -P jacoco -DskipTests -Deditorconfig.skip=true -ntporg.javassist:javassist:3.24.0-GA.0.8.8 instruments the same class and writes execution data successfully.
The complete eight-suite PD/Store workflow and the external Codecov upload are
left to GitHub Actions because the local environment uses JDK 17 while this
workflow currently installs JDK 11.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - DoneDoc - No Need