From c850e982adf0a298c35c10772df9ad5e1d22d7e8 Mon Sep 17 00:00:00 2001 From: regnat Date: Mon, 20 Sep 2021 18:02:46 +0200 Subject: [PATCH] Run the tests as a separate flake Avoids needing the `--impure` flag, and hopefully makes everything more nicely cached --- .github/workflows/test.yml | 7 ++----- scripts/test-against-master.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) create mode 100755 scripts/test-against-master.sh diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b765a0d20..a2bf3774e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,11 +25,8 @@ jobs: - run: nix-build -A checks.$(nix-instantiate --eval -E '(builtins.currentSystem)') - run: | cachix use nixos-nix-install-tests - NIX_BUILD=$(nix-build -A defaultPackage.$(nix-instantiate --eval -E '(builtins.currentSystem)'))/bin/nix-build - $NIX_BUILD \ - --option experimental-features 'flakes' \ - --option access-tokens github.com=${{ secrets.GITHUB_TOKEN }} \ - --impure --expr '(builtins.getFlake (builtins.toPath ./.)).lib.testAgainst.${builtins.currentSystem} (builtins.getFlake "github:nixos/nix/master").defaultPackage.${builtins.currentSystem}' + CURRENT_NIX_BUILD=$(nix-build -A defaultPackage.$(nix-instantiate --eval -E '(builtins.currentSystem)'))/bin + PATH=$CURRENT_NIX_BUILD:$PATH bash scripts/test-against-master.sh check_cachix: name: Cachix secret present for installer tests runs-on: ubuntu-latest diff --git a/scripts/test-against-master.sh b/scripts/test-against-master.sh new file mode 100755 index 000000000..911fa8757 --- /dev/null +++ b/scripts/test-against-master.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -euo pipefail +set -x; + +CurrentNixDir=$(pwd) +CurrentRev=${GITHUB_SHA:-$(git rev-parse HEAD)} +WorkDir=$(mktemp -d) +trap 'rm -r "$WorkDir"' EXIT + +pushd "$WorkDir" + +cat < flake.nix +{ + inputs.currentNix.url = "git+file://$CurrentNixDir?rev=$CurrentRev"; + inputs.nixMaster.url = "github:nixos/nix"; + + outputs = { self, currentNix, nixMaster }: { + checks = builtins.mapAttrs (systemName: _: + { againstMaster = currentNix.lib.testAgainst.\${systemName} nixMaster.defaultPackage.\${systemName}; } + ) currentNix.defaultPackage; + }; +} +EOF +nix --experimental-features 'nix-command flakes' flake check + +popd