1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-24 11:19:35 +01:00

Run the tests as a separate flake

Avoids needing the `--impure` flag, and hopefully makes everything more
nicely cached
This commit is contained in:
regnat 2021-09-20 18:02:46 +02:00
parent 3130e8dc4c
commit c850e982ad
2 changed files with 29 additions and 5 deletions

View file

@ -25,11 +25,8 @@ jobs:
- run: nix-build -A checks.$(nix-instantiate --eval -E '(builtins.currentSystem)') - run: nix-build -A checks.$(nix-instantiate --eval -E '(builtins.currentSystem)')
- run: | - run: |
cachix use nixos-nix-install-tests cachix use nixos-nix-install-tests
NIX_BUILD=$(nix-build -A defaultPackage.$(nix-instantiate --eval -E '(builtins.currentSystem)'))/bin/nix-build CURRENT_NIX_BUILD=$(nix-build -A defaultPackage.$(nix-instantiate --eval -E '(builtins.currentSystem)'))/bin
$NIX_BUILD \ PATH=$CURRENT_NIX_BUILD:$PATH bash scripts/test-against-master.sh
--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}'
check_cachix: check_cachix:
name: Cachix secret present for installer tests name: Cachix secret present for installer tests
runs-on: ubuntu-latest runs-on: ubuntu-latest

27
scripts/test-against-master.sh Executable file
View file

@ -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 <<EOF > 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