};
config = lib.mkIf config.myServices.buildbot.enable {
+ services.duplyBackup.profiles.buildbot = {
+ rootDir = varDir;
+ };
ids.uids.buildbot = myconfig.env.buildbot.user.uid;
ids.gids.buildbot = myconfig.env.buildbot.user.gid;
extraGroups = [ "keys" ];
};
- services.websites.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: ''
+ services.websites.env.tools.watchPaths = lib.attrsets.mapAttrsToList
+ (k: project: "/var/secrets/buildbot/${project.name}/webhook-httpd-include")
+ myconfig.env.buildbot.projects;
+
+ services.websites.env.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: ''
RedirectMatch permanent "^/buildbot/${project.name}$" "/buildbot/${project.name}/"
RewriteEngine On
RewriteRule ^/buildbot/${project.name}/ws(.*)$ unix:///run/buildbot/${project.name}.sock|ws://git.immae.eu/ws$1 [P,NE,QSA,L]
system.activationScripts = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
deps = [ "users" "wrappers" ];
- text = project.activationScript;
+ text = ''
+ install -m 755 -o buildbot -g buildbot -d ${varDir}/${project.name}
+
+ ${project.activationScript}
+ '';
}) myconfig.env.buildbot.projects;
secrets.keys = (
}
];
+ services.filesWatcher = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
+ restart = true;
+ paths = [
+ "/var/secrets/buildbot/ldap"
+ "/var/secrets/buildbot/ssh_key"
+ ] ++ lib.attrsets.mapAttrsToList (k: v: "/var/secrets/buildbot/${project.name}/${k}") project.secrets;
+ }) myconfig.env.buildbot.projects;
+
systemd.services = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
description = "Buildbot Continuous Integration Server ${project.name}.";
after = [ "network-online.target" ];