From d0b27853507d95c1b4c36dab63b281d158fb0e6b Mon Sep 17 00:00:00 2001
From: Dmitriy Pleshevskiy <dmitriy@pleshevski.ru>
Date: Wed, 29 Jan 2025 20:29:54 +0300
Subject: [PATCH] host/home: add forgejo-runner

---
 .agenix_config.nix                            | Bin 5722 -> 5831 bytes
 hosts/home/configuration.nix                  |   1 +
 hosts/home/forgejo-runners/default.nix        |  33 ++++++++++++++++++
 .../forgejo-runner-token-home-docker.age      | Bin 0 -> 1469 bytes
 hosts/istal/services/renovate.nix             |   3 +-
 5 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 hosts/home/forgejo-runners/default.nix
 create mode 100644 hosts/home/forgejo-runners/forgejo-runner-token-home-docker.age

diff --git a/.agenix_config.nix b/.agenix_config.nix
index 8fb5ec4c29f5d32716b025845cf45dc87ab01503..69471fef23b84f892c7e61575d2ebd11290e185d 100644
GIT binary patch
literal 5831
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
Rv}kg4Qr(9$yENof97)~XTgCtY

literal 5722
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
MYXSO;HY>l_#g;M}#{d8T

diff --git a/hosts/home/configuration.nix b/hosts/home/configuration.nix
index 2d0401a..399c4cd 100644
--- a/hosts/home/configuration.nix
+++ b/hosts/home/configuration.nix
@@ -5,6 +5,7 @@
     ./hardware-configuration
     ./configs
     ./users
+    ./forgejo-runners
   ];
 
   ################################################################################
diff --git a/hosts/home/forgejo-runners/default.nix b/hosts/home/forgejo-runners/default.nix
new file mode 100644
index 0000000..9882e9b
--- /dev/null
+++ b/hosts/home/forgejo-runners/default.nix
@@ -0,0 +1,33 @@
+{ config, pkgs, ... }:
+
+let
+  NODE_OPTIONS = "--max_old_space_size=8192";
+in
+{
+  age.secrets.forgejo-runner-token-home-docker.file = ./forgejo-runner-token-home-docker.age;
+
+  virtualisation.docker.enable = true;
+
+  services.gitea-actions-runner = {
+    package = pkgs.unstable.forgejo-runner;
+    instances = {
+      home-docker = {
+        enable = true;
+        name = "home-docker";
+        url = "https://git.pleshevski.ru";
+        labels = [
+          "docker:docker://node:20-bullseye"
+          "ubuntu-22.04:docker://node:20-bullseye"
+        ];
+        tokenFile = config.age.secrets.forgejo-runner-token-home-docker.path;
+        settings = {
+          runner = {
+            envs = { inherit NODE_OPTIONS; };
+
+            timeout = "1h";
+          };
+        };
+      };
+    };
+  };
+}
diff --git a/hosts/home/forgejo-runners/forgejo-runner-token-home-docker.age b/hosts/home/forgejo-runners/forgejo-runner-token-home-docker.age
new file mode 100644
index 0000000000000000000000000000000000000000..b99b93c854137592e78ff73336f7180a5b67b0e0
GIT binary patch
literal 1469
zcmV;u1w#4&M@dveQdv+`0Gvz~K``ZaZBR79l%se>P>=nx=6dnybMVa%KT}6F1sljH
zdhKz>yDnQ5lIU}nCOVb<2akiJa@$0{VY-zFudDtZ|A_J<#5Xa2cm!Qe0CUnrM(m`Y
z#VuheG^kn3+}Qv_raa7zWF3<DqO<1b41gtHSf8l65gE&tTxFMjS7Ur50zaP;Y!V^V
z{6nGHswGq5!2XurTtpjJk4Er2!*o(OGuz4$Zh+w=Es!NRilk5^%AA1WEl)dqY9@sI
z3G38%TQ+kP_-9L=sTOa%nd=kxO6Vr+Pii?@{GgZJCu!;U3KS3ZKZe9OEjBFE_rq$L
zqkmF&cy@l0-=8*jrF-dc2~lg)Oy%u<sAxbBp?3i2oz4n4cUh$Fxm-477&?nNdGSK~
zF$M(y8gJfee77t&)EpH>nM&k^CMDD$aD|eT)xaVD`$qmEm1Mg-rfEZucbXAw>%1IO
z#LLGQyPA;m@o>xsi^-4!M7Fhir;amj0?U$&I@{el_rA&WkWE6zrHA}OI1*xoM<<)!
zvYAa5sV}1s)rXW?T*f8Yh&phA>VZyf3z8GHMAhfh9<ZHUq*ZZ(7jMZm6K~plVP&o?
zV_0m{4DFq+BszO4kYCO>4>J9dqoYAAj5)(lzt=tXW6Jt>gaxlWqU@}P6AP|g``HVm
z^ux6u+=uf2bn>!0N&x>Zf*xy@_s8bxo25tm(#KqfsWeU-0CBM;nV9KK!<fgY)#B%J
zzK2^4Xo|D6Gp*8ta}RIZlxai_TdDsKAIBME9My+k%WK19=s-n_lK;Gv$B1!rXT5qr
zYmJ0`k~=$0TxQ6a+XNWM=5rt)dSw>RDjyFWnznuO$Mtu1loz=|Fv8N8H5IPzNN$jl
zud~m(fkE?Qo-)jzigYCkPq}9+tLAGmR|Mnx$EqPFN-bB)6<W{5e<Q!&wm(Ra10`j7
zzULb2$*D*N9hG63>qP&ungVT-PS%INv&w-(s~pCEE)Zv5Gfiz`Na(ec#k1CagnFc8
z3Pu446Np!v8=#2GK%U0_K~CpdoR<0U2oTnfafa)YJJS^VHObYe;n;~B%;&n=ptP&J
z)n|_g#Rd~ka?Im>sVP%tq-R%~Qh;1NXG&RCl=-($syatVPtPg_e0Dnh1cs+*Mx(H-
zW1AB+?+}tk(E;x9Om=ye?QH@op?m}99^$`3Vb*v1u9c?=W@GrJn17&06pI8Z8|Q(w
z#@z$+T*_{nuNb7nA0vQY_(_lTE1ND$rhDB0dj+K&OzjKVR-#(*tO-%!4*3|5u6e6#
zc>X$KBWEe)NKR!RqoIW_7Sd{6q%q?&1D-C1+iQrw-rw7XLuXsq*!I^XbH=QvpsW<S
z=!-eZlfrEjD!{_Omi*M0tVM!QzG=N2`;C@8NjaSloWHqjUX7>$?9u$LZ75?-Xt2OZ
zxELBSS6dHwToj~YCg*D-&_fzD?zQ;AG1VF|-rz?YCk%lyow!uFgai>A1NW6pl%L1O
zlz+yG#{cn8u;=mP?`2;(&Yxq!35X1|?~V7N(M>)yf)wrIeGqTwPS@V&1_4P++C#*`
zn4ET2@Gb;aRfb=vAAhu?g^-G7<l&xnR|5TB5SHC-5arvJC_^#*+At@awjabs4F_RC
z+bbY)o4x!4XA9xlv{JC_t)&epW;!}Q2E3kSiB#;kTwf(*(*aA5IqQ3cU9?=O+cJG|
zadXeGHL8*Nf0PkPszx_UaHHPrKB7C#zDMHWVJMb@jD`(n`ig0ScnpoUh4Zh%%SOhx
z(43weU!cGAP2&~(>znn=g#LemGz;%Secur&Za}7KyVq!D9JuBrD@%~>^V^QrsG0;9
zZ%#^IG$KvW?d62iV#?WJPKVPNA=Gh0>k47`0B6+LB9IR$A(BOJUm5U<NN;mMZhtBQ
X^XC#Bcl!$-vMcE`PAD%=sziF-@Ho}@

literal 0
HcmV?d00001

diff --git a/hosts/istal/services/renovate.nix b/hosts/istal/services/renovate.nix
index 6049275..bd6290b 100644
--- a/hosts/istal/services/renovate.nix
+++ b/hosts/istal/services/renovate.nix
@@ -41,8 +41,7 @@ in
       GITHUB_COM_TOKEN = config.age.secrets.renovate-github-token.path;
     };
     runtimePackages = with pkgs.unstable; [
-      nodePackages.pnpm
-      nodePackages.npm
+      pnpm
       python312
       poetry
       gnumake