/ modules / nixos / services / github-runners.nix
github-runners.nix
  1  {
  2    config,
  3    pkgs,
  4    ...
  5  }:
  6  {
  7    services.github-runners = {
  8      nixos-1 = {
  9        enable = config.networking.hostName == "framework-desktop";
 10        # enable = false;
 11        # group = null;
 12        replace = true;
 13        # name = "nixos"; # defaults to hostname, changing this triggers new registration
 14        # workDir = null; # triggers new registration on change
 15        user = "mfarabi";
 16        ephemeral = false;
 17        # runnerGroup = "self-hosted";
 18        url = "https://github.com/apidae-systems/platform";
 19        tokenFile = "/var/lib/secrets/github-actions-runner.token";
 20  
 21        extraLabels = [
 22          "nixos"
 23        ];
 24  
 25        nodeRuntimes = [
 26          "node24"
 27        ];
 28  
 29        extraPackages = with pkgs; [
 30          jq
 31          pnpm
 32          xvfb
 33          pulumi
 34          devenv
 35          direnv
 36          platformio
 37          playwright
 38          playwright-test
 39        ];
 40  
 41        # extraEnvironment = {
 42        #   PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = "true";
 43        #   PLAYWRIGHT_NODEJS_PATH = "${pkgs.nodejs_24}/bin/node";
 44        # };
 45  
 46        serviceOverrides = {
 47          PrivateUsers = false;
 48          SystemCallFilter = "";
 49          RestrictNamespaces = false;
 50          SystemCallArchitectures = "native";
 51        };
 52      };
 53  
 54      # nixos-2 = {
 55      #   enable = config.networking.hostName == "framework-desktop";
 56      #   # workDir = null; # triggers new registration on change
 57      #   replace = true;
 58      #   user = "mfarabi";
 59      #   ephemeral = true;
 60      #   url = "https://github.com/apidae-systems/platform";
 61      #   tokenFile = "/var/lib/secrets/github-actions-runner.token";
 62      #
 63      #   extraLabels = [
 64      #     "nixos"
 65      #   ];
 66      #
 67      #   extraPackages = with pkgs; [
 68      #     devenv
 69      #   ];
 70      #
 71      #   serviceOverrides = {
 72      #     PrivateUsers = false;
 73      #     SystemCallFilter = "";
 74      #     RestrictNamespaces = false;
 75      #     SystemCallArchitectures = "native";
 76      #   };
 77      # };
 78  
 79      # nixos-3 = {
 80      #   enable = config.networking.hostName == "framework-desktop";
 81      #   # workDir = null; # triggers new registration on change
 82      #   replace = true;
 83      #   user = "mfarabi";
 84      #   ephemeral = true;
 85      #   url = "https://github.com/apidae-systems/platform";
 86      #   tokenFile = "/var/lib/secrets/github-actions-runner.token";
 87  
 88      #   extraLabels = [
 89      #     "nixos"
 90      #   ];
 91  
 92      #   extraPackages = with pkgs; [
 93      #     devenv
 94      #   ];
 95  
 96      #   serviceOverrides = {
 97      #     PrivateUsers = false;
 98      #     SystemCallFilter = "";
 99      #     RestrictNamespaces = false;
100      #     SystemCallArchitectures = "native";
101      #   };
102      # };
103  
104      # nixos-4 = {
105      #   enable = config.networking.hostName == "framework-desktop";
106      #   # workDir = null; # triggers new registration on change
107      #   replace = true;
108      #   user = "mfarabi";
109      #   ephemeral = true;
110      #   url = "https://github.com/apidae-systems/platform";
111      #   tokenFile = "/var/lib/secrets/github-actions-runner.token";
112  
113      #   extraLabels = [
114      #     "nixos"
115      #   ];
116  
117      #   extraPackages = with pkgs; [
118      #     devenv
119      #   ];
120  
121      #   serviceOverrides = {
122      #     PrivateUsers = false;
123      #     SystemCallFilter = "";
124      #     RestrictNamespaces = false;
125      #     SystemCallArchitectures = "native";
126      #   };
127      # };
128    };
129  }