ci: migrate Nix cache from sunset magic-nix-cache to FlakeHub Cache#2208
Merged
theangelperalta merged 1 commit intoJun 3, 2026
Merged
Conversation
DeterminateSystems/magic-nix-cache-action was sunset on 2025-02-01. It now rate-limits and returns HTTP 418, and when its local substituter is disabled mid-build the Nix dependency closure becomes unfetchable, producing intermittent "no substituter that can build it" failures on the Linux jobs. Replace it with its supported successor, flakehub-cache-action, which authenticates via GitHub OIDC. Add the id-token: write / contents: read permissions the OIDC flow requires to the build job.
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
Migrates the Nix CI workflow off
DeterminateSystems/magic-nix-cache-action@v8, which was sunset on 2025-02-01, to its supported successorflakehub-cache-action.Why
magic-nix-cache-actionnow rate-limits and returns HTTP 418, and logsFlakeHub cache is not enabled/Shutting down. When its local substituter (127.0.0.1:37515) is disabled mid-build, paths it was serving (the SBCL lisp closure —sbcl-micros,sbcl-queues,sbcl-sha3, …) become unfetchable, producing intermittenterror: ... is required, but there is no substituter that can build itfailures on the Linux jobs. It's flaky-but-usually-green today (falls back tocache.nixos.org), but it's a deprecated dependency and a recurring source of CI noise.Change
DeterminateSystems/flakehub-cache-action@main.permissions: { id-token: write, contents: read }to thebuildjob (FlakeHub Cache authenticates via GitHub OIDC).FlakeHub Cache authenticates via OIDC and requires the
lem-projectorg to be enrolled in FlakeHub (free for public/OSS repos) at https://flakehub.com. This PR's own CI run is the test: if the cache step authenticates, we're good; if it errors with "create an organization at FlakeHub.com", the org needs enrolling first (or, as a fallback, we can simply drop the cache step and rely oncache.nixos.org).Notes / out of scope
actions/checkout@v4,nix-installer-action@v16, and the (now-removed) cache action. Bumping those is a separate cleanup.