summaryrefslogtreecommitdiff
path: root/modules/flake/ci.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2023-05-08 13:55:26 -0400
committerseth <[email protected]>2023-05-08 13:55:26 -0400
commit8abb7764f8343fcd730a1fe6bf8d2cb32d43dc79 (patch)
tree6d29952ad950e4c7423b6953eed7e8616e6f335a /modules/flake/ci.nix
parente9ac656f9886205fce36f9d7502676826d126e4b (diff)
flake: move flake modules to modules/
Diffstat (limited to 'modules/flake/ci.nix')
-rw-r--r--modules/flake/ci.nix56
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);
+ };
+ };
+ };
+}