summaryrefslogtreecommitdiff
path: root/flake/ci.nix
blob: 3959260e0ea22df88c2b6e9a78013bf14074c2f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
{
  inputs,
  self,
  ...
}: 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);
      };
    };
  };
}