ci: split coverage into parallel producers - #404
Merged
Conversation
XuPeng-SH
added a commit
to matrixorigin/matrixone
that referenced
this pull request
Jul 27, 2026
## What this PR does / why we need it Reworks PR coverage collection to remove the serial UT + full-BVT critical path while retaining Race UT and coverage breadth. - adds a separate non-race UT coverage producer; Race UT remains unchanged and does not block coverage merge - uses exactly two active BVT jobs: Compose + Proxy and Launch + Pessimistic - splits every non-optimistic BVT case into two complementary, timing-balanced groups; each run executes both groups once and a rerun swaps their deployment mapping - collects profiles in the producer jobs and merges exactly one UT plus two BVT profiles - skips merge when any producer fails, coverage secrets are unavailable, the PR is untrusted, or the PR is a draft - routes Compose SQL through Proxy and gracefully stops coverage-instrumented services - compacts the all-package UT profile before upload, reducing the observed artifact from about 622 MB to 3,519,245 bytes without changing merged block/hit results - fixes production object-storage retry cancellation and bounds QCloud multipart abort cleanup to 30 seconds - propagates test deadlines through object-storage constructors and operations so a remote outage cannot consume the package-level 10-minute timeout - adds the production entrypoint calls for Coverage UT and Coverage Merge; the same entrypoint disables legacy coverage atomically ## Rollout dependency Depends on matrixorigin/CI#404. Merge CI#404 first. Its `enable_legacy_coverage` input defaults to `true`, so the old entrypoint retains legacy coverage until this PR merges; this PR passes `false` in the same commit that enables the new producers. `.github/workflows/coverage-integration.yaml` is validation-only and pins reviewed CI commit `6beb8d8bb8a93d62f6ff02591c3eafe287d536ce`. Remove it after the final integration run passes and before merging this PR. ## Which issue(s) this PR fixes: Related performance issue: #25116 ## Validation - `pkg/fileservice`: full short package test passed - `pkg/fileservice`: full short `-race` test passed; final changed-helper race selection passed - `go vet ./pkg/fileservice`: passed - `make err-check`: passed - actionlint on MatrixOne entrypoint/integration workflows: passed - actionlint on changed CI coverage workflows: passed (known custom runner labels excluded) - BVT grouping: 1,113 non-optimistic scripts; group union/disjoint validation passed - Docker Compose `launch-multi-cn` config validation: passed - CI workflow schema validation in matrixorigin/CI#404: passed
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 this PR does
Replaces the serial UT + full-BVT coverage path with parallel producers while preserving coverage during rollout.
run_id + run_attempt; every run covers both groups and reruns swap deploymentssafe-to-testmay run untrusted PR code with coverage secretsenable_legacy_coveragetoutils.yaml, defaulting totrue; existing callers retain legacy coverage until the MatrixOne entrypoint atomically disables it and enables the new producersRUNNER_LABEL || ubuntu-22.04BVT/merge runner policyRollout
Merge this PR before matrixorigin/matrixone#26179. Until #26179 merges, callers that do not pass
enable_legacy_coverage: falsecontinue to run the legacy Coverage job, so there is no coverage gap.Validation
6beb8d8bb8a93d62f6ff02591c3eafe287d536ceut-coverageartifact: 3,519,245 bytes (previously about 622 MB)