There is nothing in this commit except for the changes made by nix-shell -p nixfmt-rfc-style --run "nixfmt ." If this has mucked up your open branches then sorry about that. You can probably nixfmt them to match before merging
85 lines
2.3 KiB
Nix
85 lines
2.3 KiB
Nix
let
|
|
pkgs = import <nixpkgs> { };
|
|
liminix = <liminix>;
|
|
borderVmConf = ./bordervm.conf-example.nix;
|
|
inherit (pkgs.lib.attrsets) genAttrs;
|
|
devices = [
|
|
"gl-ar750"
|
|
"gl-mt300a"
|
|
"gl-mt300n-v2"
|
|
"qemu"
|
|
"qemu-aarch64"
|
|
"qemu-armv7l"
|
|
"tp-archer-ax23"
|
|
"openwrt-one"
|
|
"zyxel-nwa50ax"
|
|
"turris-omnia"
|
|
"belkin-rt3200"
|
|
];
|
|
vanilla = ./vanilla-configuration.nix;
|
|
for-device =
|
|
name:
|
|
(import liminix {
|
|
inherit borderVmConf;
|
|
device = import (liminix + "/devices/${name}");
|
|
liminix-config = vanilla;
|
|
}).outputs.default;
|
|
tests = import ./tests/ci.nix;
|
|
jobs =
|
|
(genAttrs devices for-device)
|
|
// tests
|
|
// {
|
|
buildEnv =
|
|
(import liminix {
|
|
inherit borderVmConf;
|
|
device = import (liminix + "/devices/qemu");
|
|
liminix-config = vanilla;
|
|
}).buildEnv;
|
|
doc =
|
|
let
|
|
json =
|
|
(import liminix {
|
|
inherit borderVmConf;
|
|
device = import (liminix + "/devices/qemu");
|
|
liminix-config =
|
|
{ ... }:
|
|
{
|
|
imports = [ ./modules/all-modules.nix ];
|
|
};
|
|
}).outputs.optionsJson;
|
|
in
|
|
pkgs.stdenv.mkDerivation {
|
|
name = "liminix-doc";
|
|
nativeBuildInputs = with pkgs; [
|
|
gnumake
|
|
sphinx
|
|
fennel
|
|
luaPackages.lyaml
|
|
];
|
|
src = ./.;
|
|
buildPhase = ''
|
|
cat ${json} | fennel --correlate doc/parse-options.fnl > doc/modules-generated.inc.rst
|
|
cat ${json} | fennel --correlate doc/parse-options-outputs.fnl > doc/outputs-generated.inc.rst
|
|
cp ${(import ./doc/hardware.nix)} doc/hardware.rst
|
|
make -C doc html
|
|
'';
|
|
installPhase = ''
|
|
mkdir -p $out/nix-support $out/share/doc/
|
|
cd doc
|
|
cp *-generated.inc.rst hardware.rst $out
|
|
ln -s ${json} $out/options.json
|
|
cp -a _build/html $out/share/doc/liminix
|
|
echo "file source-dist \"$out/share/doc/liminix\"" \
|
|
> $out/nix-support/hydra-build-products
|
|
'';
|
|
};
|
|
};
|
|
in
|
|
jobs
|
|
// {
|
|
all = pkgs.mkShell {
|
|
name = "all tests";
|
|
contents = pkgs.lib.collect pkgs.lib.isDerivation jobs;
|
|
};
|
|
}
|