Merge changes I81552018,Ieb65c133 into main
* changes: releng: add releaseTests flake output, test script add aarch64-linux as a cross-build target
This commit is contained in:
commit
f0c751d4d6
3 changed files with 57 additions and 0 deletions
|
@ -175,6 +175,7 @@ These are specified in `crossSystems` in `flake.nix`; feel free to submit change
|
||||||
|
|
||||||
- `armv6l-linux`
|
- `armv6l-linux`
|
||||||
- `armv7l-linux`
|
- `armv7l-linux`
|
||||||
|
- `aarch64-linux`
|
||||||
- `riscv64-linux`
|
- `riscv64-linux`
|
||||||
|
|
||||||
For example, to cross-compile Lix for `armv6l-linux` from another Linux, use the following:
|
For example, to cross-compile Lix for `armv6l-linux` from another Linux, use the following:
|
||||||
|
|
20
flake.nix
20
flake.nix
|
@ -90,6 +90,7 @@
|
||||||
"armv6l-linux"
|
"armv6l-linux"
|
||||||
"armv7l-linux"
|
"armv7l-linux"
|
||||||
"riscv64-linux"
|
"riscv64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
# FIXME: still broken in 24.05: fails to build rustc(??) due to missing -lstdc++ dep
|
# FIXME: still broken in 24.05: fails to build rustc(??) due to missing -lstdc++ dep
|
||||||
# "x86_64-freebsd"
|
# "x86_64-freebsd"
|
||||||
# FIXME: broken dev shell due to python
|
# FIXME: broken dev shell due to python
|
||||||
|
@ -328,6 +329,25 @@
|
||||||
pkgs = nixpkgsFor.x86_64-linux.native;
|
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
|
# 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
|
# hydraJobs first (so CI will pick them up) and only link them here
|
||||||
checks = forAvailableSystems (
|
checks = forAvailableSystems (
|
||||||
|
|
36
releng/release-tests.sh
Executable file
36
releng/release-tests.sh
Executable file
|
@ -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
|
Loading…
Reference in a new issue