nixfiles/ci/nodes.nix
Kat Inskip 6fe1921360
Some checks failed
flake-update / flake-update check (push) Has been cancelled
flake-update / flake-update (push) Has been cancelled
nodes / nodes-home-home-base (push) Failing after 24s
nodes / nodes check (push) Failing after 1m30s
nodes / nodes-home-home-graphical (push) Failing after 43s
nodes / nodes-home-home-neovim (push) Failing after 23s
nodes / nodes-nixos-mei (push) Failing after 23s
nodes / nodes-home-home-shell (push) Failing after 45s
nodes / nodes-nixos-mai (push) Failing after 44s
fix(forgejo-runner): maybe?
2025-10-13 09:09:58 -07:00

96 lines
3.2 KiB
Nix

{
lib,
channels,
config,
...
}:
with lib; let
enabledNixosSystems = filterAttrs (_: system: system.config.ci.enable && system.config.type == "NixOS") channels.nixfiles.systems;
enabledHomeSystems = filterAttrs (_: system: system.config.ci.enable && system.config.type == "Home") channels.nixfiles.systems;
in {
imports = [./common.nix];
config = {
name = "nodes";
gh-actions = {
env = {
CACHIX_AUTH_TOKEN = "\${{ secrets.CACHIX_AUTH_TOKEN }}";
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
DISCORD_WEBHOOK_LINK = "\${{ secrets.DISCORD_WEBHOOK_LINK }}";
NIX_CONFIG = "\${{ secrets.NIX_CONFIG }}";
};
on = let
paths = [
"*"
"ci/nodes.nix"
config.ci.gh-actions.path
];
in {
push = {
inherit paths;
};
pull_request = {
inherit paths;
};
workflow_dispatch = {};
};
jobs = let
genericNixosBuildJob = name: _system:
nameValuePair "nixos-${name}" {
step.${name} = {
name = "build system closure for ${name}";
order = 500;
run = "nix run .#nf-build-system -- nixosConfigurations.${name}.config.system.build.toplevel ${name} NixOS";
env = {
NIX_CONFIG = "\${{ secrets.NIX_CONFIG }}";
CACHIX_AUTH_TOKEN = "\${{ secrets.CACHIX_AUTH_TOKEN }}";
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
DISCORD_WEBHOOK_LINK = "\${{ secrets.DISCORD_WEBHOOK_LINK }}";
NF_UPDATE_CACHIX_PUSH = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}";
};
};
};
genericHomeBuildJob = name: _system:
nameValuePair "home-${name}" {
step.${name} = {
name = "build home closure for ${name}";
order = 500;
run = "nix run .#nf-build-system -- homeConfigurations.${name}.activationPackage ${name} Home";
env = {
NIX_CONFIG = "\${{ secrets.NIX_CONFIG }}";
CACHIX_AUTH_TOKEN = "\${{ secrets.CACHIX_AUTH_TOKEN }}";
CACHIX_SIGNING_KEY = "\${{ secrets.CACHIX_SIGNING_KEY }}";
DISCORD_WEBHOOK_LINK = "\${{ secrets.DISCORD_WEBHOOK_LINK }}";
NF_UPDATE_CACHIX_PUSH = "1";
NF_CONFIG_ROOT = "\${{ github.workspace }}";
};
};
};
nixosBuildJobs = mapAttrs' genericNixosBuildJob enabledNixosSystems;
homeBuildJobs = mapAttrs' genericHomeBuildJob enabledHomeSystems;
in
nixosBuildJobs // homeBuildJobs;
};
jobs = let
genericNixosBuildJob = name: _system:
nameValuePair "nixos-${name}" (_: {
imports = [./packages.nix];
});
genericHomeBuildJob = name: _system:
nameValuePair "home-${name}" (_: {
imports = [
./packages.nix
];
});
nixosBuildJobs = mapAttrs' genericNixosBuildJob enabledNixosSystems;
homeBuildJobs = mapAttrs' genericHomeBuildJob enabledHomeSystems;
in
nixosBuildJobs // homeBuildJobs;
ci.gh-actions.checkoutOptions = {
fetch-depth = 0;
};
};
}