aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix19
-rwxr-xr-xreleng/release-tests.sh36
2 files changed, 55 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index 2b8c95f70..c29111ed2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -329,6 +329,25 @@
pkgs = nixpkgsFor.x86_64-linux.native;
};
+ releaseTests = lib.foldl lib.recursiveUpdate { } [
+ (lib.genAttrs (linux64BitSystems ++ darwinSystems) (system: {
+ nativeBuild = self.packages.${system}.nix;
+ }))
+ (lib.genAttrs (linux64BitSystems) (system: {
+ staticBuild = self.packages.${system}.nix-static;
+ }))
+ {
+ x86_64-linux = {
+ # TODO add more cross/static release targets?
+ crossBuild.aarch64-linux = self.packages.x86_64-linux.nix-aarch64-linux;
+
+ # TODO wire up a nixos installer test with that lix and
+ # run it, once nixpkgs can actually do that (again). :/
+ # # nix build .#nixosTests.installer.{btrfsSimple,luksroot,lvm,simple,switchToFlake}
+ };
+ }
+ ];
+
# NOTE *do not* add fresh derivations to checks, always add them to
# hydraJobs first (so CI will pick them up) and only link them here
checks = forAvailableSystems (
diff --git a/releng/release-tests.sh b/releng/release-tests.sh
new file mode 100755
index 000000000..c0a9b2e33
--- /dev/null
+++ b/releng/release-tests.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+shopt -s inherit_errexit failglob
+
+nixpkgss=(
+ "$(nix eval --impure --raw --expr '(import ./flake.nix).inputs.nixpkgs.url')"
+ "github:NixOS/nixpkgs/nixos-unstable-small"
+)
+jobs=(
+ $(nix eval \
+ --json --apply '
+ let f = n: t:
+ if builtins.isAttrs t
+ then (if t.type or "" == "derivation"
+ then [ n ]
+ else builtins.concatMap (m: f "${n}.${m}" t.${m}) (builtins.attrNames t))
+ else [];
+ in f ".#.releaseTests"
+ ' \
+ '.#.releaseTests' \
+ | jq -r '.[]'
+ )
+)
+
+for override in "${nixpkgss}"
+do
+ (
+ set -x
+ nix build \
+ --log-format multiline \
+ --no-link \
+ --override-input nixpkgs "$override" \
+ "${jobs[@]}"
+ )
+done