summary refs log tree commit diff
path: root/modules/nix.nix
blob: 0f4366a938b880923189e8e9199895d190b88672 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
  me,
  lib,
  self,
  ...
}:

let
  inherit (lib) mkIf mkMerge;

  bismuthCache = {
    substituters = [ "http://bismuth.serval-moth.ts.net:3000" ];
    trusted-public-keys = [ "bismuth-1:Fkyzfd9gfMUVKq/KfNClHaB2rUiAGtXTzYu96oZteKQ=" ];
  };
in
{
  nix = {
    # add compat scripts to the environment,
    # to allow nixos-option to find the configuration
    nixPath = [
      "nixpkgs=${self}/compat"
      "nixos-config=${self}/compat/nixos"
    ];

    settings = mkMerge [
      {
        experimental-features = [
          "flakes"
          "nix-command"
        ];
        trusted-users = [
          "mel"
        ];
        # usually my builders have faster connections
        builders-use-substitutes = true;
        # don't wait too long on caches that are down
        connect-timeout = 3;
        # yes nix, i know my flake is dirty!!!
        warn-dirty = false;
      }
      (mkIf (me.name != "bismuth") bismuthCache)
    ];

    distributedBuilds = true;
    buildMachines =
      let
        tailnet = n: "${n}.serval-moth.ts.net";

        defaults = {
          sshUser = "mel";
          systems = [ "x86_64-linux" "i686-linux" ];
          supportedFeatures = [
            "kvm"
            "big-parallel"
            "nixos-test"
            "benchmark"
          ];
        };
      in
      lib.filter (m: m.hostName != me.name) [
        {
          hostName = tailnet "bismuth";
          maxJobs = 32;
          speedFactor = 16;
          publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUFRUllWU0tXaDRldDFtNUxsd1RoWTNIeEdTRkM0NDkydmhwaWQ4WTJzcVogcm9vdEBCaXNtdXRoCg==";
          inherit (defaults) sshUser systems supportedFeatures;
        }
        {
          hostName = tailnet "renard";
          maxJobs = 8;
          speedFactor = 2;
          publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUovcURMNys4NiswSDZOa1BzL3c0R1lpV1F3VC80WUF4OU8ySjdzTGtLbWYgcm9vdEByZW5hcmQK";
          inherit (defaults) sshUser systems supportedFeatures;
        }
      ];
  };
}