Skip to content

ci: migrate Nix cache from sunset magic-nix-cache to FlakeHub Cache#2208

Merged
theangelperalta merged 1 commit into
lem-project:mainfrom
theangelperalta:ci/flakehub-cache
Jun 3, 2026
Merged

ci: migrate Nix cache from sunset magic-nix-cache to FlakeHub Cache#2208
theangelperalta merged 1 commit into
lem-project:mainfrom
theangelperalta:ci/flakehub-cache

Conversation

@theangelperalta
Copy link
Copy Markdown
Collaborator

Summary

Migrates the Nix CI workflow off DeterminateSystems/magic-nix-cache-action@v8, which was sunset on 2025-02-01, to its supported successor flakehub-cache-action.

Why

magic-nix-cache-action now rate-limits and returns HTTP 418, and logs FlakeHub 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 intermittent error: ... is required, but there is no substituter that can build it failures on the Linux jobs. It's flaky-but-usually-green today (falls back to cache.nixos.org), but it's a deprecated dependency and a recurring source of CI noise.

Change

  • Swap the cache step to DeterminateSystems/flakehub-cache-action@main.
  • Add permissions: { id-token: write, contents: read } to the build job (FlakeHub Cache authenticates via GitHub OIDC).

⚠️ Maintainer prerequisite

FlakeHub Cache authenticates via OIDC and requires the lem-project org 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 on cache.nixos.org).

Notes / out of scope

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.
@theangelperalta theangelperalta merged commit 7d0c0f4 into lem-project:main Jun 3, 2026
10 checks passed
@theangelperalta theangelperalta deleted the ci/flakehub-cache branch June 3, 2026 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant