Add local builder

This commit is contained in:
Greg Hellings
2022-10-10 21:52:49 +00:00
parent 9aaa2621e4
commit 52a87a2541
+59 -4
View File
@@ -5,8 +5,16 @@ let
ciDomain = "ci.thehellings.com"; ciDomain = "ci.thehellings.com";
ciPort = "17080"; ciPort = "17080";
droneDir = "/var/lib/drone"; droneDir = "/var/lib/drone";
execWorkDir = "/var/lib/drone-exec";
droneWorkerEnvironment = {
DRONE_RPC_PROTO = "https";
DRONE_RPC_HOST = ciDomain;
DRONE_RUNNER_CAPACITY = "2";
DRONE_RUNNER_NAME = "docker";
};
in { in {
environment.systemPackages = [ pkgs.drone-runner-exec ];
########################################################################################## ##########################################################################################
########### ###########
# GIT SERVICES # GIT SERVICES
@@ -91,13 +99,50 @@ in {
ports = [ "${ciPort}:80" ]; ports = [ "${ciPort}:80" ];
volumes = [ "${droneDir}:/data" ]; volumes = [ "${droneDir}:/data" ];
}; };
"drone-docker" = {
environment = droneWorkerEnvironment;
environmentFiles = [
"/run/agenix/drone"
];
extraOptions = [ "--pull=newer" ];
image = "drone/drone-runner-docker:1.8";
volumes = [ "/run/podman/podman.sock:/var/run/docker.sock" ];
};
}; };
}; };
systemd.services."podman-drone".serviceConfig = { systemd.services = {
StateDirectory = "drone"; "podman-drone".serviceConfig = {
StateDirectoryMode = pkgs.lib.mkForce "0777"; StateDirectory = "drone";
WorkingDirectory = droneDir; StateDirectoryMode = pkgs.lib.mkForce "0777";
WorkingDirectory = droneDir;
};
"drone-exec-runner" = {
environment = droneWorkerEnvironment;
description = "Drone pipeline runner that executes locally";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = with pkgs; [
bash
drone-runner-exec
git
podman
];
preStart = ''
mkdir -p ${execWorkDir}
cat /run/agenix/drone > ${execWorkDir}/conf.env
echo "" >> ${execWorkDir}/conf.env
'';
script = "exec ${pkgs.drone-runner-exec}/bin/drone-runner-exec daemon ${execWorkDir}/conf.env";
serviceConfig = {
StateDirectory = "drone-exec";
StateDirectoryMode = pkgs.lib.mkForce "0777";
};
};
}; };
greg.proxies."${ciDomain}" = { greg.proxies."${ciDomain}" = {
@@ -105,4 +150,14 @@ in {
ssl = true; ssl = true;
genAliases = false; genAliases = false;
}; };
##########################################################################################
###########
# CI WORKERS
##########
##########################################################################################
virtualisation.podman = {
enable = true;
dockerCompat = true;
};
} }