ci: de-node the workflows so Actions actually run on the org runner #135

Merged
hexajon merged 1 commit from refs/pull/135/head into main 2026-07-15 23:38:11 +00:00
hexajon commented 2026-07-15 23:38:06 +00:00 (Migrated from codeberg.org)

Summary

Every Actions task in this repo's history failed (1083 failures, 0 successes): the JS-implemented actions/checkout and actions/cache execute node inside the job container, and the pinned golang:1.26-trixie image ships no node - every job died at its first uses: step. The workflows now fetch nothing and need no node: checkout is plain in-container git (shallow fetch of the exact ref under test, with a fetch-by-SHA fallback), Go caches are runner-local named docker volumes (madtea-gomod, madtea-gobuild; allowlisted via valid_volumes on the runner - stanza in docs/contributing/ci.md), and the mcp-conformance job installs Node v24.18.0 from the official nodejs.org tarball with a hard-coded SHA-256 (replacing apt's node 20.19.2/npm 9, below the project's Node 24.18.0 floor). New toolchain-honesty gate: scripts/check-go-version.sh asserts go env GOVERSION equals go.mod's go directive (first gate.sh check, tested in hooks/tests), and CI sets GOTOOLCHAIN=local so the image's own toolchain provably runs. drift.yml's forgejo-smoke job retargeted from the unmatchable self-hosted label to docker. docs/contributing/ci.md documents the runner, volumes, digest-bump and node pin-bump procedures. This PR and its merge push are the first live runs of the new pipeline.

Closes #47

## Summary Every Actions task in this repo's history failed (1083 failures, 0 successes): the JS-implemented actions/checkout and actions/cache execute node inside the job container, and the pinned golang:1.26-trixie image ships no node - every job died at its first uses: step. The workflows now fetch nothing and need no node: checkout is plain in-container git (shallow fetch of the exact ref under test, with a fetch-by-SHA fallback), Go caches are runner-local named docker volumes (madtea-gomod, madtea-gobuild; allowlisted via valid_volumes on the runner - stanza in docs/contributing/ci.md), and the mcp-conformance job installs Node v24.18.0 from the official nodejs.org tarball with a hard-coded SHA-256 (replacing apt's node 20.19.2/npm 9, below the project's Node 24.18.0 floor). New toolchain-honesty gate: scripts/check-go-version.sh asserts go env GOVERSION equals go.mod's go directive (first gate.sh check, tested in hooks/tests), and CI sets GOTOOLCHAIN=local so the image's own toolchain provably runs. drift.yml's forgejo-smoke job retargeted from the unmatchable self-hosted label to docker. docs/contributing/ci.md documents the runner, volumes, digest-bump and node pin-bump procedures. This PR and its merge push are the first live runs of the new pipeline. Closes #47
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!135
No description provided.