ci(drift): remove the git-matrix job #539

Merged
hexajon merged 1 commit from revert-git-matrix into main 2026-09-17 02:42:11 +00:00
Owner

Summary

Removes the git-matrix job added in #531. It has failed on every run since it merged, and it was built on a premise that does not hold.

Why it goes

It never ran before it merged. Its first execution failed, and it has failed every day since.

The failure, reproduced locally under the same pinned image:

CARGO target/release/libgitcore.a
/bin/sh: 1: cargo: not found
make: *** [Makefile:3021: target/release/libgitcore.a] Error 127

Current git builds libgitcore.a with cargo. The job installed a hand-written list of build dependencies rather than asking the package manager, so it could not build the latest release at all. set -eu then killed the job before a single test ran.

That hand-written dependency list was the root cause, not the missing cargo specifically. A curated list of another project's build requirements can only rot.

Why it is not worth fixing in place

Two things came out of the investigation that remove the job's reason to exist.

The floor is moving to the git in current Debian stable (#536), which is 2.47.3 - the git already inside the CI image. So ci.yml's gate job verifies the floor on every push and every PR, and has done all along. The matrix was computing a result the gate already produced.

And the job answered the wrong question. It ran the test suite against several git versions, which proves the paths the tests happen to walk. It says nothing about the flags on the paths they do not, and madtea drives 42 git subcommands. The check that was actually wanted is a generated CLI surface diff, the same shape as surface-diff does for the forge API. That is #537.

Everything the job carried existed to build a floor we no longer need: the pinned GPG trust anchor, the kernel.org download, the source builds, and the madtea-gitcache volume. All of it goes.

What stays

The workflow_dispatch trigger and the 13:00 UTC cron from #533 stay - both are useful independent of this job.

docs/contributing/ci.md returns to documenting two named volumes, so no runner-config change is needed. The madtea-gitcache entry added to the runner's valid_volumes for this job can be removed.

Verification

Ran drift.yml's surface-diff step in the same digest-pinned image before merging:

git version 2.47.3
245 unique endpoints matched against 2 specs (26 partial-coverage)
--- PASS: TestAPISurfaceMatchesSpec
EXIT=0

The file parses and declares the three expected jobs (govulncheck, surface-diff, forgejo-smoke) with all four triggers intact. Every one of the 214 deleted lines belongs to the removed job; I checked the diff line by line rather than trusting the edit.

Refs #536, #537.

## Summary Removes the `git-matrix` job added in #531. It has failed on every run since it merged, and it was built on a premise that does not hold. ## Why it goes It never ran before it merged. Its first execution failed, and it has failed every day since. The failure, reproduced locally under the same pinned image: ``` CARGO target/release/libgitcore.a /bin/sh: 1: cargo: not found make: *** [Makefile:3021: target/release/libgitcore.a] Error 127 ``` Current git builds `libgitcore.a` with cargo. The job installed a hand-written list of build dependencies rather than asking the package manager, so it could not build the latest release at all. `set -eu` then killed the job before a single test ran. That hand-written dependency list was the root cause, not the missing cargo specifically. A curated list of another project's build requirements can only rot. ## Why it is not worth fixing in place Two things came out of the investigation that remove the job's reason to exist. The floor is moving to the git in current Debian stable (#536), which is 2.47.3 - the git already inside the CI image. So `ci.yml`'s `gate` job verifies the floor on every push and every PR, and has done all along. The matrix was computing a result the gate already produced. And the job answered the wrong question. It ran the test suite against several git versions, which proves the paths the tests happen to walk. It says nothing about the flags on the paths they do not, and madtea drives 42 git subcommands. The check that was actually wanted is a generated CLI surface diff, the same shape as `surface-diff` does for the forge API. That is #537. Everything the job carried existed to build a floor we no longer need: the pinned GPG trust anchor, the kernel.org download, the source builds, and the `madtea-gitcache` volume. All of it goes. ## What stays The `workflow_dispatch` trigger and the 13:00 UTC cron from #533 stay - both are useful independent of this job. `docs/contributing/ci.md` returns to documenting two named volumes, so no runner-config change is needed. The `madtea-gitcache` entry added to the runner's `valid_volumes` for this job can be removed. ## Verification Ran `drift.yml`'s `surface-diff` step in the same digest-pinned image before merging: ``` git version 2.47.3 245 unique endpoints matched against 2 specs (26 partial-coverage) --- PASS: TestAPISurfaceMatchesSpec EXIT=0 ``` The file parses and declares the three expected jobs (`govulncheck`, `surface-diff`, `forgejo-smoke`) with all four triggers intact. Every one of the 214 deleted lines belongs to the removed job; I checked the diff line by line rather than trusting the edit. Refs #536, #537.
ci(drift): remove the git-matrix job
Some checks failed
drift / govulncheck (pull_request) Has been skipped
ci / mcp-conformance (pull_request) Failing after 11s
drift / surface-diff (pull_request) Failing after 10s
ci / gate (pull_request) Failing after 12s
drift / forgejo-smoke (pull_request) Has been skipped
drift / govulncheck (push) Has been skipped
drift / surface-diff (push) Successful in 11s
drift / forgejo-smoke (push) Has been skipped
ci / mcp-conformance (push) Successful in 28s
ci / gate (push) Successful in 7m19s
6e13912e59
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea!539
No description provided.