Audit THORNode test selection and publish CI evidence

Existing CI could miss tests in nested modules and build-tagged paths, accept unexpected skips, and keep little evidence of what actually ran. This change adds a source inventory that fails when a *_test.go file is compiled by no CI job. It also adds a test runner that records the packages it selected, JSON events, JUnit, skip counts and filtered coverage, with checks for required tests, forbidden skips and gocheck counts.

Two new jobs cover gaps. test-simulation-unit runs the nested simulation module, and test-mainnet-monero runs the fail-closed Monero daemon test. The unit-tests job writes a changed-line coverage report, compared against the target branch's latest coverage when that is available. The network-tagged matrix, go-tss and the eBifrost/Bifrost race gate now publish JUnit and report artifacts.

A curated security mutation runner uses Go overlays and never modifies the checkout. Its fast mode runs on relevant MRs and its deep mode on scheduled pipelines. It fails on any unexpected surviving mutant, changed anchor, timeout or failed baseline.

Simulation records a reproducible RANDOM_SEED_HEX artifact on every run. The test-simulation and test-regression retries are kept. Both now also retry on exit code 75, which adds nothing beyond the existing script_failure retry.

Validation: The integrated MR passed the new CI gates. This MR targets test-quality-sim-unit because its isolated simulation unit job requires the hermetic fixtures from !5183 (merged). Enabling the eBifrost race gate also requires the quorum ownership fix from !5182 (merged), which is included here. The concurrent Solana solvency test now allows report attempts that are dropped under contention. Its own pipeline must pass on this stacked result. This topic is also included in draft !5181 (closed); coordinate merging to avoid landing the same change twice.

Edited by Huginn Ai

Merge request reports

Loading
Loading