diff options
Diffstat (limited to 'modules/flake/ci.nix')
| -rw-r--r-- | modules/flake/ci.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/flake/ci.nix b/modules/flake/ci.nix new file mode 100644 index 0000000..91dc397 --- /dev/null +++ b/modules/flake/ci.nix @@ -0,0 +1,56 @@ +{ + self, + inputs, + ... +}: let + inherit (inputs) hercules-ci-effects nixpkgs; +in { + imports = [ + hercules-ci-effects.flakeModule + ]; + + hercules-ci = { + flake-update = { + enable = true; + when = { + hour = [0]; + minute = 0; + }; + }; + }; + + herculesCI = let + inherit + (import + (hercules-ci-effects + "/vendor/hercules-ci-agent/default-herculesCI-for-flake.nix")) + flakeToOutputs + ; + in rec { + ciSystems = [ + "x86_64-linux" + "aarch64-linux" + ]; + + onPush = { + default = { + outputs = with builtins; + with nixpkgs.lib; let + # use defaults, but only evaluate hosts + defaults = + removeAttrs + (flakeToOutputs self { + ciSystems = genAttrs ciSystems (_: {}); + }) + ["nixosConfigurations" "packages"]; + + evaluate = mapAttrs (_: v: + seq + v.config.system.build.toplevel + v._module.args.pkgs.emptyFile) + self.nixosConfigurations; + in + mkForce (defaults // evaluate); + }; + }; + }; +} |
