ci: isolate plan UT coverage from parallel packages - #428
Conversation
|
Addressed all three review findings on head
Validation: |
aptend
left a comment
There was a problem hiding this comment.
Blocking security concern:
.github/workflows/check-action-file.yaml now triggers for any scripts/** change and then checks out the PR and executes PR-controlled Python test files on the self-hosted arm64-mo-shanghai-4c8g runner.
Because matrixorigin/CI is public, a fork PR can modify one of these test modules and obtain arbitrary code execution on the self-hosted runner once the workflow is allowed to run. permissions: contents: read limits the GitHub token but does not isolate runner files, network access, or infrastructure identity.
This validation only needs Bash, Python, and pytest. Please run it on a GitHub-hosted runner such as ubuntu-latest. If a self-hosted runner is mandatory, gate execution on a trusted organization member or safe label and ensure untrusted PR code is not executed before that gate.
The coverage phase split, failure propagation, report preservation, and max-hit profile merge otherwise look correct. Local validation passed: 38 passed, 3 xfailed, plus bash -n and git diff --check.
What does this PR do?
This isolates the memory-heavy MatrixOne
pkg/sql/plancoverage package from the other UT coverage packages. The first phase keeps the existing-p 6package set minus the exact plan package; after it exits, a second phase runs plan alone with-p 1. Phase reports remain available on failure, and the finalmode: setprofile is merged with max-hit semantics and atomically published only after both phases pass.The package scope, all-package
coverpkgvalue, coverage filters, external-storage environment, runner pool, artifact names, downstream gate, and 45-minute coverage step are unchanged.Which issue does this PR fix?
Consolidates the CI capacity failure in matrixorigin/matrixone#27408. The issue records three independent 14 GiB memcg OOMs that killed
plan.testwhile-p 6test/link/vet processes overlapped:This PR does not use
Fixesso the MatrixOne issue remains open for post-merge canary evidence.QA and validation
QA required: no— CI scheduling/profile production only; no product runtime, SQL, or data semantics change.BVT: N/A— this is CI workflow tooling.go listnow propagates partial-output failures; script-only changes trigger the helper/parser tests andbash -n; report append errors are returned without publishing a profile.38 passed, 3 xfailedacross the helper, coverage parser, and CGo preparation tests;bash -n;git diff --check; semantic preflightPASSat headfb57c4f792864500bb7a08753df593af697f4337.plan.testmemcg OOM, and completion within 45 minutes.The PR is intentionally Draft until the CI maintainers can run the upstream workflow and collect the canary evidence.