Repository navigation
Conversation
|
Merging this PR will not alter performance
|
GuillaumeLagrange
left a comment
There was a problem hiding this comment.
olgtm, maybe we can add a just clean-integ that would be in charge of clearing all docker volumes, images and so on easily? Dont go too complicated on this
The executor tests install the pinned valgrind-codspeed release, so a runner change that depends on an unreleased valgrind-codspeed change cannot be tested until that release ships and the pin is bumped. CODSPEED_VALGRIND_REF=<branch, tag or full commit sha> now builds that valgrind-codspeed in the setup container before `codspeed setup`, which keeps an installed build at or above the pinned version. The ref is resolved to a commit on the host and hashed into the setup image tag, so a push to the branch rebuilds the image. The setup fails if `codspeed setup` replaced the build, i.e. the ref is older than the pin. Add a commented-out example to the executor-tests CI job. Closes COD-3781 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0eea696 to
8470cc5
Compare
Run the Docker executor tests against an unreleased valgrind-codspeed:
The tests install the pinned valgrind-codspeed release through
codspeed setup, so a runner change that depends on an unreleased valgrind-codspeed change could not be tested end to end until that release shipped and the pin was bumped.tests/docker/run.shresolves the ref to a commit on the host (git ls-remote; a full sha is used as-is) and hashes it into the setup image tag, so a push to the branch rebuilds the image and an unchanged ref reuses it.tests/docker/setup.shbuilds and installs that commit in the setup container, addslibc6-dbg(without itcodspeed setupreinstalls the package), then runscodspeed setup, which keeps an installed build at or above the pinned version. It fails when setup replaced the build, i.e. the ref is older than the pin. Test containers are unchanged.executor-testsCI job gets a commented-outenv:example, to enable while a PR waits on a valgrind-codspeed release.I first considered teaching
codspeed setupitself to build a ref, but only the tests need it, and since everycodspeed runruns setup it would have needed per-run commit tracking to avoid rebuilding.Short shas are not supported: GitHub only serves fetches by full sha.
Verified locally with
CODSPEED_VALGRIND_REF=700eb1edb4393e1e964acb4a04c1cc6a7f499911: the setup container built and keptvalgrind-3.26.0.codspeed7from that commit, andsimulation_exec_harness_declares_benchmark_pidpassed against it. Branch and annotated tag names resolve to their commits, and an unknown name fails before any build.Closes COD-3781