summaryrefslogtreecommitdiff
path: root/modules/services/github-runner/default.nix
blob: 79379802bb48c845084545ad8f23da2c714e6617 (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
{ config, lib, ... }:
let
  anyEnabled = lib.any (cfg: cfg.enable) (lib.attrValues config.services.github-runners);
in
{
  imports = [
    ./options.nix
    ./config.nix
  ];

  config.assertions = lib.mkIf anyEnabled [
    {
      assertion = lib.elem "github-runner" config.users.knownGroups;
      message = "set `users.knownGroups` to enable `github-runner` group";
    }
    {
      assertion = lib.elem "github-runner" config.users.knownUsers;
      message = "set `users.knownUsers` to enable `github-runner` user";
    }
  ];

  config.users = lib.mkIf anyEnabled {
    users."github-runner" = {
      createHome = true;
      uid = lib.mkDefault 533;
      gid = lib.mkDefault config.users.groups.github-runner.gid;
      home = lib.mkDefault "/var/lib/github-runners";
      shell = "/bin/bash";
      description = "GitHub Runner service user";
    };

    groups."github-runner" = {
      gid = lib.mkDefault 533;
      description = "GitHub Runner service user group";
    };
  };
}