diff options
-rw-r--r-- | doc/manual/src/contributing/hacking.md | 1 | ||||
-rw-r--r-- | flake.nix | 20 | ||||
-rwxr-xr-x | releng/release-tests.sh | 36 |
3 files changed, 57 insertions, 0 deletions
diff --git a/doc/manual/src/contributing/hacking.md b/doc/manual/src/contributing/hacking.md index 8577a6a2e..37c96a5c0 100644 --- a/doc/manual/src/contributing/hacking.md +++ b/doc/manual/src/contributing/hacking.md @@ -175,6 +175,7 @@ These are specified in `crossSystems` in `flake.nix`; feel free to submit change - `armv6l-linux` - `armv7l-linux` +- `aarch64-linux` - `riscv64-linux` For example, to cross-compile Lix for `armv6l-linux` from another Linux, use the following: @@ -90,6 +90,7 @@ "armv6l-linux" "armv7l-linux" "riscv64-linux" + "aarch64-linux" # FIXME: still broken in 24.05: fails to build rustc(??) due to missing -lstdc++ dep # "x86_64-freebsd" # FIXME: broken dev shell due to python @@ -328,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 |