From ebdd32265b2743a5d4f105b7c4111fab7d2d3207 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Fri, 29 May 2026 22:13:58 +0100 Subject: [PATCH] ci: nix flake archive before check to materialize input sources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .gitea/workflows/check.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml index 36533d5..a3ea21d 100644 --- a/.gitea/workflows/check.yml +++ b/.gitea/workflows/check.yml @@ -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