ci: split go-tests into our-pkgs matrix and all-pkgs job#257
Open
vporoshok wants to merge 2 commits into
Open
Conversation
u-veles-a
approved these changes
Mar 12, 2026
- Trim go-tests matrix to four meaningful variants by also excluding
no_sanitizers+opt; matrix now covers our packages
(./pp/go/... ./pp-pkg/...) under {dbg+jemalloc, opt+asan} on
amd64 and arm64.
- Add go-tests-all-pkgs job that exercises the entire repository
(root module ./..., minus packages replaced by pp-pkg or unused by
cmd/prometheus) under opt+jemalloc on amd64 and arm64.
- Wire build_dev to wait for both jobs.
Supporting changes:
- Makefile: default pkgs = ./pp/go/... ./pp-pkg/... so make test
targets our packages out of the box; CI overrides pkgs for the
all-pkgs run.
- Makefile.common: pass extra go test flags via args (defaulting to
test-flags) so CI can append -cover/-coverprofile/etc. without
losing -race or -asan from ci_get_go_test_flags.sh.
- scripts/list-test-packages.sh: enumerate all packages excluding
ones we replace with pp-pkg counterparts, ones not shipped with
cmd/prometheus, and bundled web/ui node_modules Go files.
- util/testutil: ignore tsdb DB.run and wlog WL.run goroutines in
TolerantVerifyLeak; tests using teststorage may finish before
these background loops fully shut down.
- documentation/examples/remote_storage, pp/tools/block_converter:
bump go directive to 1.25.0 so check-go-mod-version passes.
Made-with: Cursor
d953a51 to
7d3a765
Compare
- tracing: bump otel semconv import v1.39.0 -> v1.40.0 to match the resource SDK; v1.39.0 collides with the new SDK schema URL (conflicting Schema URL: 1.39.0 and 1.40.0). - tsdb: skip the heaviest upstream e2e/race tests (TestDB_e2e, TestWALReplayRaceOnSamplesLoggedBeforeSeries, TestTombstoneCleanRetentionLimitsRace, TestDelete_e2e, TestHeadSeriesChunkRace, TestCancelCompactions). Combined they pushed the package past go test's default 10m per-package timeout in CI under -race + coverage. The functionality is exercised by pp-pkg/tsdb in our matrix. - ci(go-tests-all-pkgs): bump per-package -timeout to 20m to give remaining heavy upstream packages more headroom under -race+coverage. Made-with: Cursor
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.
Summary
Reorganize Go-test CI so that our packages are exercised under multiple
build profiles, and the entire repository is exercised under a single
profile.
Matrix layout
go-tests(our packages:./pp/go/... ./pp-pkg/...) — full matrix withtwo skipped combinations (
asan+dbg,jemalloc+opt):go-tests-all-pkgs(whole repo, root module./...) — only the leftovercombination, on both architectures:
build_devwaits for both jobs.Supporting changes
Makefile: defaultpkgs := ./pp/go/... ./pp-pkg/...somake testtargets our packages out of the box; CI overrides
pkgsfor theall-pkgs run.
Makefile.common: pass extrago testflags viaargs(defaulting totest-flags) so CI can append-cover/-coverprofile/etc. withoutlosing
-raceor-asanfrompp/scripts/ci_get_go_test_flags.sh.scripts/list-test-packages.sh(new): enumerate all packagesexcluding ones we replace with
pp-pkgcounterparts, ones notshipped with
cmd/prometheus, and bundledweb/uinode_modulesGo files.
util/testutil/testing.go: ignore TSDBDB.runandwlog.WL.rungoroutines in
TolerantVerifyLeak(tests usingteststoragemayfinish before these background loops fully shut down).
documentation/examples/remote_storage/go.mod,pp/tools/block_converter/go.mod: bumpgodirective to1.25.0socheck-go-mod-versionpasses.Made with Cursor