Expose and use checks for vmOptions and nixosConfigurations
All checks were successful
/ check-pre-commit (pull_request) Successful in 15s
/ check-data-model (pull_request) Successful in 35s
/ check-mastodon (pull_request) Successful in 22s
/ check-peertube (pull_request) Successful in 21s
/ check-panel (pull_request) Successful in 1m31s
/ check-deployment-basic (pull_request) Successful in 34s
/ check-deployment-cli (pull_request) Successful in 43s
/ check-deployment-panel (pull_request) Successful in 1m52s
/ check-resources (pull_request) Successful in 4m12s
All checks were successful
/ check-pre-commit (pull_request) Successful in 15s
/ check-data-model (pull_request) Successful in 35s
/ check-mastodon (pull_request) Successful in 22s
/ check-peertube (pull_request) Successful in 21s
/ check-panel (pull_request) Successful in 1m31s
/ check-deployment-basic (pull_request) Successful in 34s
/ check-deployment-cli (pull_request) Successful in 43s
/ check-deployment-panel (pull_request) Successful in 1m52s
/ check-resources (pull_request) Successful in 4m12s
This commit is contained in:
parent
6ec14e4a75
commit
9d539d790d
2 changed files with 50 additions and 9 deletions
|
@ -69,9 +69,16 @@ jobs:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- run: |
|
- run: |
|
||||||
set -euC
|
set -euC
|
||||||
|
echo ==================== [ VM Options ] ====================
|
||||||
|
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).vmOptions)')
|
||||||
|
for machine in $machines; do
|
||||||
|
echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
nix build .#checks.x86_64-linux.vmOptions-$machine
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
echo ==================== [ NixOS Configurations ] ====================
|
||||||
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).nixosConfigurations)')
|
machines=$(nix eval --impure --raw --expr 'with builtins; toString (attrNames (getFlake (toString ./.)).nixosConfigurations)')
|
||||||
for machine in $machines; do
|
for machine in $machines; do
|
||||||
echo ==================== [ $machine ] ====================
|
echo ~~~~~~~~~~~~~~~~~~~~~: $machine :~~~~~~~~~~~~~~~~~~~~~
|
||||||
nix eval .#vmOptions.$machine
|
nix build .#checks.x86_64-linux.nixosConfigurations-$machine
|
||||||
nix build .#nixosConfigurations.$machine.config.system.build.toplevel
|
|
||||||
done
|
done
|
||||||
|
|
|
@ -14,6 +14,10 @@ let
|
||||||
mkOption
|
mkOption
|
||||||
evalModules
|
evalModules
|
||||||
filterAttrs
|
filterAttrs
|
||||||
|
attrsToList
|
||||||
|
map
|
||||||
|
listToAttrs
|
||||||
|
deepSeq
|
||||||
;
|
;
|
||||||
inherit (lib.attrsets) genAttrs;
|
inherit (lib.attrsets) genAttrs;
|
||||||
|
|
||||||
|
@ -160,6 +164,13 @@ let
|
||||||
machines = listSubdirectories ../machines/dev;
|
machines = listSubdirectories ../machines/dev;
|
||||||
testMachines = listSubdirectories ../machines/operator;
|
testMachines = listSubdirectories ../machines/operator;
|
||||||
|
|
||||||
|
nixosConfigurations =
|
||||||
|
genAttrs machines (makeConfiguration false)
|
||||||
|
// genAttrs testMachines (makeConfiguration true);
|
||||||
|
vmOptions =
|
||||||
|
filterAttrs (_: value: value != null) # Filter out non-Fediversity VMs
|
||||||
|
(genAttrs machines (makeVmOptions false) // genAttrs testMachines (makeVmOptions true));
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
_class = "flake";
|
_class = "flake";
|
||||||
|
@ -183,10 +194,33 @@ in
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
flake.nixosConfigurations =
|
flake = { inherit nixosConfigurations vmOptions; };
|
||||||
genAttrs machines (makeConfiguration false)
|
|
||||||
// genAttrs testMachines (makeConfiguration true);
|
perSystem =
|
||||||
flake.vmOptions =
|
{ pkgs, ... }:
|
||||||
filterAttrs (_: value: value != null) # Filter out non-Fediversity VMs
|
{
|
||||||
(genAttrs machines (makeVmOptions false) // genAttrs testMachines (makeVmOptions true));
|
checks =
|
||||||
|
listToAttrs (
|
||||||
|
map (
|
||||||
|
{ name, value }:
|
||||||
|
{
|
||||||
|
name = "nixosConfigurations-${name}";
|
||||||
|
value = value.config.system.build.toplevel;
|
||||||
|
}
|
||||||
|
) (attrsToList nixosConfigurations)
|
||||||
|
)
|
||||||
|
// listToAttrs (
|
||||||
|
map (
|
||||||
|
{ name, value }:
|
||||||
|
{
|
||||||
|
name = "vmOptions-${name}";
|
||||||
|
## Check that VM options builds/evaluates correctly. `deepSeq e1
|
||||||
|
## e2` evaluates `e1` strictly in depth before returning `e2`. We
|
||||||
|
## use this trick because checks need to be derivations, which VM
|
||||||
|
## options are not.
|
||||||
|
value = deepSeq value pkgs.hello;
|
||||||
|
}
|
||||||
|
) (attrsToList vmOptions)
|
||||||
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue