ci: nix flake archive before check to materialize input sources
Some checks failed
Check / eval-and-lint (push) Failing after 1m11s
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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user