nixfiles/hosts/koi/services/actions-runner/default.nix

60 lines
1.8 KiB
Nix
Raw Normal View History

2024-12-11 08:59:22 +03:00
{ config, pkgs, ... }:
let
UID = 1126;
in {
2024-12-11 08:59:22 +03:00
desu.secrets.forgejo-runners-token = {};
2025-01-03 21:49:41 +03:00
desu.secrets.forgejo-runners-token-sf = {};
2024-12-11 08:59:22 +03:00
users.users.actions-runner = {
isNormalUser = true;
uid = 1126;
};
2024-12-11 08:59:22 +03:00
systemd.services.actions-runner-build-dind = {
description = "dind image builder for actions runner";
after = [ "docker.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.docker}/bin/docker build -t local/actions-runner-dind ${pkgs.copyPathToStore ./image-dind}";
2024-12-11 08:59:22 +03:00
};
};
systemd.services.gitea-runner-koi.requires = [ "actions-runner-build-dind.service" ];
systemd.services.gitea-runner-koi-stupid-fish.requires = [ "actions-runner-build-dind.service" ];
2024-12-11 08:59:22 +03:00
services.gitea-actions-runner = {
package = pkgs.forgejo-runner;
instances.koi = {
name = "koi";
enable = true;
url = "https://git.stupid.fish";
tokenFile = config.desu.secrets.forgejo-runners-token-sf.path;
2024-12-11 08:59:22 +03:00
labels = [
"node18:docker://node:18-bullseye"
"node20:docker://node:20-bullseye"
"node22:docker://node:22-bullseye"
# fun fact: the actual image doesnt matter! it's only used to determine the runner
"docker:docker://node:22-bullseye"
2024-12-11 08:59:22 +03:00
];
settings = {
runner.capacity = 8;
};
};
# a separate runner for dind because it requires privileged mode and act-runner doesnt support setting --privileged for certain images
instances.koi-dind = {
name = "koi-dind";
2025-01-03 21:49:41 +03:00
enable = true;
url = "https://git.stupid.fish";
tokenFile = config.desu.secrets.forgejo-runners-token-sf.path;
labels = [
"docker-dind:docker://local/actions-runner-dind"
2025-01-03 21:49:41 +03:00
];
settings = {
container.privileged = true;
2025-01-03 21:49:41 +03:00
};
};
2024-12-11 08:59:22 +03:00
};
}