mirror of
https://github.com/JulienMalka/snowfield.git
synced 2025-03-25 21:30:52 +01:00
103 lines
3 KiB
Nix
103 lines
3 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.luj.buildbot;
|
|
in
|
|
{
|
|
|
|
options.luj.buildbot = {
|
|
enable = mkEnableOption "activate buildbot service";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
services.buildbot-nix.master = {
|
|
enable = true;
|
|
domain = "ci.julienmalka.me";
|
|
workersFile = config.age.secrets.buildbot-nix-workers.path;
|
|
buildSystems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
];
|
|
github = {
|
|
tokenFile = config.age.secrets.github-token.path;
|
|
webhookSecretFile = config.age.secrets.github-webhook-secret.path;
|
|
oauthSecretFile = config.age.secrets.github-oauth-secret.path;
|
|
oauthId = "bba3e144501aa5b8a5dd";
|
|
user = "JulienMalka";
|
|
topic = "nix-ci";
|
|
};
|
|
admins = [
|
|
"JulienMalka"
|
|
"camillemndn"
|
|
];
|
|
evalWorkerCount = 10; # limit number of concurrent evaluations
|
|
};
|
|
|
|
systemd.services.buildbot-worker.path = lib.mkForce [
|
|
pkgs.attic-client
|
|
pkgs.git
|
|
pkgs.openssh
|
|
pkgs.gh
|
|
pkgs.nix
|
|
pkgs.nix-eval-jobs
|
|
pkgs.coreutils
|
|
];
|
|
|
|
services.nginx.virtualHosts."ci.julienmalka.me" = {
|
|
forceSSL = true;
|
|
enableACME = true;
|
|
};
|
|
|
|
age.secrets = {
|
|
github-token.file = ../../secrets/github-token-secret.age;
|
|
github-webhook-secret.file = ../../secrets/github-webhook-secret.age;
|
|
github-oauth-secret.file = ../../secrets/github-oauth-secret.age;
|
|
buildbot-nix-workers.file = ../../secrets/buildbot-nix-workers.age;
|
|
buildbot-nix-worker-password = {
|
|
file = ../../secrets/buildbot-nix-worker-password.age;
|
|
owner = "buildbot-worker";
|
|
};
|
|
};
|
|
|
|
systemd.services.buildbot-worker.environment.WORKER_COUNT = "14";
|
|
services.buildbot-nix.worker = {
|
|
enable = true;
|
|
workerPasswordFile = config.age.secrets.buildbot-nix-worker-password.path;
|
|
};
|
|
services.buildbot-master = {
|
|
pythonPackages = _: [
|
|
pkgs.buildbot-plugins.badges
|
|
pkgs.buildbot-plugins.www
|
|
];
|
|
extraConfig = ''
|
|
c["www"].update({"plugins": {"badges": {
|
|
"left_pad" : 5,
|
|
"left_text": "Build Status", # text on the left part of the image
|
|
"left_color": "#555", # color of the left part of the image
|
|
"right_pad" : 5,
|
|
"border_radius" : 5, # Border Radius on flat and plastic badges
|
|
# style of the template availables are "flat", "flat-square", "plastic"
|
|
"template_name": "flat.svg.j2", # name of the template
|
|
"font_face": "DejaVu Sans",
|
|
"font_size": 11,
|
|
"color_scheme": { # color to be used for right part of the image
|
|
"exception": "#007ec6",
|
|
"failure": "#e05d44",
|
|
"retry": "#007ec6",
|
|
"running": "#007ec6",
|
|
"skipped": "a4a61d",
|
|
"success": "#4c1",
|
|
"unknown": "#9f9f9f",
|
|
"warnings": "#dfb317"
|
|
}
|
|
}}})
|
|
'';
|
|
};
|
|
};
|
|
}
|