From 662edf95613f0f494af4658df5c830a9e2486784 Mon Sep 17 00:00:00 2001 From: teidesu Date: Wed, 11 Dec 2024 08:59:22 +0300 Subject: [PATCH] feat(koi): forgejo runners --- hosts/koi/configuration.nix | 1 + .../services/actions-runner/Dockerfile.dind | 12 ++++++ hosts/koi/services/actions-runner/default.nix | 36 ++++++++++++++++++ secrets/forgejo-runners-token.age | Bin 0 -> 258 bytes 4 files changed, 49 insertions(+) create mode 100644 hosts/koi/services/actions-runner/Dockerfile.dind create mode 100644 hosts/koi/services/actions-runner/default.nix create mode 100644 secrets/forgejo-runners-token.age diff --git a/hosts/koi/configuration.nix b/hosts/koi/configuration.nix index 4fb2f25..668167d 100755 --- a/hosts/koi/configuration.nix +++ b/hosts/koi/configuration.nix @@ -22,6 +22,7 @@ ./services/postgresql.nix ./services/landing ./services/geesefs.nix + ./services/actions-runner ./containers/torrent.nix ./containers/soulseek diff --git a/hosts/koi/services/actions-runner/Dockerfile.dind b/hosts/koi/services/actions-runner/Dockerfile.dind new file mode 100644 index 0000000..3185be5 --- /dev/null +++ b/hosts/koi/services/actions-runner/Dockerfile.dind @@ -0,0 +1,12 @@ +FROM node:23.4.0-alpine AS node + +FROM docker:27-dind + +COPY --from=node /usr/local/bin/node /usr/local/bin/node +COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules +COPY --from=node /usr/local/include/node /usr/local/include/node + +RUN apk add libstdc++ bash && \ + ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \ + ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx && \ + ln -s /usr/local/lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack \ No newline at end of file diff --git a/hosts/koi/services/actions-runner/default.nix b/hosts/koi/services/actions-runner/default.nix new file mode 100644 index 0000000..9da5e4e --- /dev/null +++ b/hosts/koi/services/actions-runner/default.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: + +{ + desu.secrets.forgejo-runners-token = {}; + + 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 -f ${./Dockerfile.dind} ."; + }; + }; + + systemd.services.gitea-runner-koi.requires = [ "actions-runner-build-dind.service" ]; + + services.gitea-actions-runner = { + package = pkgs.forgejo-runner; + instances.koi = { + name = "koi"; + enable = true; + url = "https://codeberg.org"; + tokenFile = config.desu.secrets.forgejo-runners-token.path; + labels = [ + "node18:docker://node:18-bullseye" + "node20:docker://node:20-bullseye" + "node22:docker://node:22-bullseye" + "docker:docker://local/actions-runner-dind" + ]; + settings = { + runner.capacity = 8; + }; + }; + }; +} \ No newline at end of file diff --git a/secrets/forgejo-runners-token.age b/secrets/forgejo-runners-token.age new file mode 100644 index 0000000000000000000000000000000000000000..de18fd70e21ffc8a29c2408ffff390c3ab34d5ec GIT binary patch literal 258 zcmV+d0sa1AXJsvAZewzJaCB*JZZ2- zQfe<*F?e}LOlDJKOlf9waAq-XS9eBsL{>&lZ)9|Fc5PX9OfPpfM>GmfRBvupL`61bH86KabWU_fVQ4XUL0WNfV=+-NV`B