liminix/ci.nix

62 lines
1.9 KiB
Nix
Raw Normal View History

2023-01-29 21:42:53 +00:00
{
2023-02-05 22:38:21 +00:00
nixpkgs
, unstable
, liminix
, ... }:
let
inherit (builtins) map;
pkgs = (import nixpkgs {});
2023-02-20 17:46:07 +00:00
borderVmConf = ./bordervm.conf-example.nix;
2023-02-05 22:38:21 +00:00
inherit (pkgs.lib.attrsets) genAttrs;
2023-09-20 20:03:51 +00:00
devices = {
2023-11-05 20:56:25 +00:00
virt = [ "qemu" "qemu-aarch64" "qemu-armv7l" ];
2023-09-20 20:03:51 +00:00
hw = [ "gl-ar750" "gl-mt300n-v2" "gl-mt300a" ];
};
2023-02-05 22:38:21 +00:00
vanilla = ./vanilla-configuration.nix;
2023-09-20 20:03:51 +00:00
for-device = cfg: name:
2023-02-05 22:38:21 +00:00
(import liminix {
2023-02-20 17:46:07 +00:00
inherit nixpkgs borderVmConf;
2023-02-05 22:38:21 +00:00
device = import (liminix + "/devices/${name}");
2023-09-20 20:03:51 +00:00
liminix-config = cfg;
2023-02-05 22:38:21 +00:00
}).outputs.default;
tests = import ./tests/ci.nix;
jobs =
2023-09-20 20:03:51 +00:00
(genAttrs devices.hw (name: for-device ./vanilla-configuration-hw.nix name)) //
(genAttrs devices.virt (name: for-device vanilla name)) //
tests //
{
buildEnv = (import liminix {
2023-02-20 17:46:07 +00:00
inherit nixpkgs borderVmConf;
device = import (liminix + "/devices/qemu");
liminix-config = vanilla;
}).buildEnv;
2023-05-21 19:53:05 +00:00
doc = pkgs.stdenv.mkDerivation {
name = "liminix-doc";
nativeBuildInputs = with pkgs; [
gnumake sphinx
fennel luaPackages.lyaml
];
2023-05-21 19:53:05 +00:00
src = ./doc;
buildPhase = ''
2023-08-11 20:12:57 +00:00
cat ${(import ./doc/extract-options.nix).doc} > options.json
2023-09-17 16:46:06 +00:00
cat options.json | fennel --correlate parse-options.fnl > modules-generated.rst
cp ${(import ./doc/hardware.nix)} hardware.rst
2023-05-21 20:27:52 +00:00
make html
2023-05-21 19:53:05 +00:00
'';
installPhase = ''
2023-05-21 20:27:52 +00:00
mkdir -p $out/nix-support $out/share/doc/
2023-08-11 20:12:57 +00:00
cp modules.rst options.json $out
2023-05-21 20:27:52 +00:00
cp -a _build/html $out/share/doc/liminix
echo "file source-dist \"$out/share/doc/liminix\"" \
> $out/nix-support/hydra-build-products
2023-05-21 19:53:05 +00:00
'';
};
2023-02-05 22:38:21 +00:00
with-unstable = (import liminix {
nixpkgs = unstable;
2023-02-20 17:46:07 +00:00
inherit borderVmConf;
2023-02-05 22:38:21 +00:00
device = import (liminix + "/devices/qemu");
liminix-config = vanilla;
}).outputs.default;
};
in jobs