nixfiles/ci/nodes.nix

42 lines
1.2 KiB
Nix

{
lib,
config,
channels,
env,
...
}:
with lib; {
imports = [ ./common.nix ];
config = {
name = "nodes";
jobs = let
enabledNixOSSystems = filterAttrs (_: system: system.config.ci.enable) channels.nixfiles.systems;
mkNixOSSystemJob = name: system: nameValuePair "${name}" {
step.build-system-wrapper = {
name = "Build ${name} system closure";
order = 500;
run = "nix run .#nf-build-system -- nixosConfigurations.${name}.config.system.build.topLevel ${name} NixOS";
env = {
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
DISCORD_WEBHOOK_LINK = "\${{ secrets.DISCORD_WEBHOOK_LINK }}";
NF_UPDATE_GIT_COMMIT = "1";
NF_UPDATE_CACHIX_PUSH = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}";
};
};
tasks = {
system = {
inputs = channels.nixfiles.nixosConfigurations.${name}.config.system.build.toplevel;
warn = system.config.ci.allowFailure;
};
};
};
nixOSSystemJobs = mapAttrs' mkNixOSSystemJob enabledNixOSSystems;
in {
packages = { ... }: {
imports = [ ./packages.nix ];
};
} // nixOSSystemJobs;
};
}