nix/hosts/netty/forgejo-runner.nix
2026-04-06 02:04:57 +00:00

83 lines
1.9 KiB
Nix

{
pkgs,
lib,
...
}:
let
cacheRoot = "/var/cache/forgejo-runner";
in
{
systemd.tmpfiles.rules = [
"d ${cacheRoot} 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/cargo 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/npm 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/pip 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/pre-commit 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/rustup 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/uv 0750 forgejo-runner forgejo-runner -"
"d ${cacheRoot}/actcache 0750 forgejo-runner forgejo-runner -"
];
services.gitea-actions-runner = {
package = pkgs.forgejo-runner;
instances.netty = {
enable = true;
name = "netty";
url = "https://git.harivan.sh";
tokenFile = "/etc/forgejo-runner/token";
labels = [
"native:host"
"ubuntu-latest:docker://node:20-bookworm"
];
hostPackages = with pkgs; [
bash
coreutils
curl
fd
gh
git
gnumake
gnused
gawk
jq
nodejs_22
pkg-config
pnpm
python3
python3Packages.pip
ripgrep
rustup
stdenv.cc
unzip
uv
wget
xz
zip
];
settings = {
log.level = "info";
runner = {
capacity = 2;
timeout = "3h";
envs = {
CARGO_HOME = "${cacheRoot}/cargo";
PIP_CACHE_DIR = "${cacheRoot}/pip";
PRE_COMMIT_HOME = "${cacheRoot}/pre-commit";
RUSTUP_HOME = "${cacheRoot}/rustup";
UV_CACHE_DIR = "${cacheRoot}/uv";
npm_config_cache = "${cacheRoot}/npm";
};
};
cache = {
enabled = true;
dir = "${cacheRoot}/actcache";
};
};
};
};
}