Add woodpecker host running a woodpecker-server and -agent for CI

This commit is contained in:
June 2024-06-22 04:20:38 +02:00
commit df17b25009
Signed by: june
SSH key fingerprint: SHA256:o9EAq4Y9N9K0pBQeBTqhSDrND5E7oB+60ZNx0U1yPe0
15 changed files with 503 additions and 0 deletions

View file

@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
imports = [
./podman.nix
./woodpecker-agent.nix
];
}

View file

@ -0,0 +1,13 @@
# Sources for this configuration:
# - https://woodpecker-ci.org/docs/administration/deployment/nixos
# - https://woodpecker-ci.org/docs/administration/backends/docker
# - https://nixos.wiki/wiki/Podman
{ config, pkgs, ... }:
{
virtualisation.podman = {
enable = true;
defaultNetwork.settings.dns_enabled = true;
};
}

View file

@ -0,0 +1,27 @@
# Sources for this configuration:
# - https://woodpecker-ci.org/docs/administration/deployment/nixos
# - https://woodpecker-ci.org/docs/administration/agent-config
# - https://woodpecker-ci.org/docs/administration/backends/docker
{ config, pkgs, pkgs-unstable, ... }:
{
services.woodpecker-agents.agents."podman" = {
enable = true;
# Since we use woodpecker-server from unstable, use the agent from unstable as well.
package = pkgs-unstable.woodpecker-agent;
extraGroups = [ "podman" ];
environment = {
WOODPECKER_SERVER = "localhost${config.services.woodpecker-server.environment.WOODPECKER_GRPC_ADDR}";
WOODPECKER_MAX_WORKFLOWS = "4";
WOODPECKER_BACKEND = "docker";
DOCKER_HOST = "unix:///run/podman/podman.sock";
# Set via enviornmentFile:
# WOODPECKER_AGENT_SECRET
};
environmentFile = [ "/run/secrets/woodpecker_agent_secret_environment_file" ];
};
# Remainder defined in ../woodpecker-server/woodpecker-server.nix
sops.secrets."woodpecker_agent_secret_environment_file".restartUnits = [ "woodpecker-agent-podman.service" ];
}