ci: nix flake archive before check to materialize input sources
Some checks failed
Check / eval-and-lint (push) Failing after 1m11s

flake check kept failing on a cold store with "path '…-source' is not
valid" while evaluating Stylix's import-from-derivation in the
home-manager fontconfig text. Nix keeps flake-input sources in a git
cache and only materializes the -source store paths lazily; IFD readFile
needs them as real store paths. Works locally only because prior builds
already materialized them. Add a `nix flake archive` step that copies
every transitive input into the store before the check (and before the
eval matrix, which has the same need).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-05-29 22:13:58 +01:00
parent 7980c2f5ff
commit ebdd32265b

View File

@@ -70,6 +70,16 @@ jobs:
curl -L "https://releases.nixos.org/nix/nix-${NIX_VERSION}/install" | sh -s -- --no-daemon
echo "$HOME/.nix-profile/bin" >> "$GITHUB_PATH"
- name: Materialize flake inputs into the store
# Nix keeps flake-input sources in a git cache and only materialises
# the `-source` store paths lazily. Stylix/base16.nix do
# import-from-derivation (readFile out of those sources) during eval,
# which needs them as real store paths — on a cold CI store that
# fails with "path '…-source' is not valid" (works locally only
# because prior builds already materialised them). `flake archive`
# copies every transitive input into the store up front.
run: nix flake archive
- name: nix flake check --no-build
run: nix flake check --no-build