From 332bc64369e71fd6e65cf6cb7ae8d08f65b712da Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Tue, 10 Jun 2025 11:46:19 -0700 Subject: [PATCH] ci/eval: accept `nix` directly Previously we were taking nixVersions and this made external use from the Lix repo's CI annoying. We should probably also test other nix versions than stable (i.e. also latest and Lix), but this involves writing GitHub Actions about it and maybe not running it on every single PR. Future work. --- ci/default.nix | 8 +++++++- ci/eval/default.nix | 16 +++++++++++----- lib/tests/test-with-nix.nix | 3 ++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ci/default.nix b/ci/default.nix index ec35121bb24b..cddea6453606 100644 --- a/ci/default.nix +++ b/ci/default.nix @@ -76,7 +76,13 @@ in inherit pkgs fmt; requestReviews = pkgs.callPackage ./request-reviews { }; codeownersValidator = pkgs.callPackage ./codeowners-validator { }; - eval = pkgs.callPackage ./eval { }; + + # FIXME(lf-): it might be useful to test other Nix implementations + # (nixVersions.stable and Lix) here somehow at some point to ensure we don't + # have eval divergence. + eval = pkgs.callPackage ./eval { + nix = pkgs.nixVersions.latest; + }; # CI jobs lib-tests = import ../lib/tests/release.nix { inherit pkgs; }; diff --git a/ci/eval/default.nix b/ci/eval/default.nix index cbb77bc89bd3..efe216c98f5c 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -1,15 +1,23 @@ +# Evaluates all the accessible paths in nixpkgs. +# *This only builds on Linux* since it requires the Linux sandbox isolation to +# be able to write in various places while evaluating inside the sandbox. +# +# This file is used by nixpkgs CI (see .github/workflows/eval.yml) as well as +# being used directly as an entry point in Lix's CI (in `flake.nix` in the Lix +# repo). +# +# If you know you are doing a breaking API change, please ping the nixpkgs CI +# maintainers and the Lix maintainers (`nix eval -f . lib.teams.lix`). { callPackage, lib, runCommand, writeShellScript, - writeText, symlinkJoin, time, procps, - nixVersions, + nix, jq, - python3, }: let @@ -31,8 +39,6 @@ let ); }; - nix = nixVersions.latest; - supportedSystems = builtins.fromJSON (builtins.readFile ../supportedSystems.json); attrpathsSuperset = diff --git a/lib/tests/test-with-nix.nix b/lib/tests/test-with-nix.nix index 4f9aa53f83dd..d9089902a0a3 100644 --- a/lib/tests/test-with-nix.nix +++ b/lib/tests/test-with-nix.nix @@ -3,9 +3,10 @@ IMPORTANT: This is used by the github.com/NixOS/nix CI. + This is used by Lix's CI (see flake.nix in the Lix repo). Try not to change the interface of this file, or if you need to, ping the - Nix maintainers for help. Thank you! + Nix AND Lix maintainers (`nix eval -f . lib.teams.lix`) for help. Thank you! */ { pkgs,