-{ lib, pkgs, config, myconfig, mylibs, ... }:
+{ lib, pkgs, config, myconfig, ... }:
let
varDir = "/var/lib/buildbot";
- buildslist_src = mylibs.fetchedGitPrivate ./buildslist.json;
- buildslist_yarn = mylibs.yarn2nixPackage.mkYarnModules rec {
- name = "buildslist-yarn-modules";
- pname = name;
- inherit (pkgs.buildbot-pkg) version;
- packageJSON = "${buildslist_src.src}/package.json";
- yarnLock = "${buildslist_src.src}/yarn.lock";
- pkgConfig = {
- all = { buildInputs = [ mylibs.yarn2nixPackage.src ]; };
- };
- };
- buildslist_bower = pkgs.buildBowerComponents {
- name = "buildslist";
- generated = ./bower.nix;
- src = "${buildslist_src.src}/guanlecoja/";
- };
-
- buildslist = pkgs.python3Packages.buildPythonPackage rec {
- pname = "buildbot-buildslist";
- inherit (pkgs.buildbot-pkg) version;
-
- preConfigure = ''
- export HOME=$PWD
- cp -a ${buildslist_yarn}/node_modules .
- chmod -R u+w node_modules
- cp -a ${buildslist_bower}/bower_components ./libs
- chmod -R u+w libs
- '';
- propagatedBuildInputs = with pkgs.python3Packages; [
- (klein.overridePythonAttrs(old: { checkPhase = ""; }))
- buildbot-pkg
- ];
- nativeBuildInputs = with pkgs; [ yarn nodejs ];
- buildInputs = [ buildslist_yarn buildslist_bower ];
-
- doCheck = false;
- src = buildslist_src.src;
- };
buildbot_common = pkgs.python3Packages.buildPythonPackage rec {
name = "buildbot_common";
src = ./common;
cp -a $src $out/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_common
'';
};
- buildbot = pkgs.python3Packages.buildbot-full.withPlugins ([ buildslist ]);
+ buildbot = pkgs.python3Packages.buildbot-full;
in
{
options = {
extraGroups = [ "keys" ];
};
- services.myWebsites.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: ''
+ services.websites.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 = ''
- install -m 0755 -o buildbot -g buildbot -d /run/buildbot/
- install -m 0755 -o buildbot -g buildbot -d ${varDir}
- ${project.activationScript}
- '';
+ text = project.activationScript;
}) myconfig.env.buildbot.projects;
- mySecrets.keys = (
+ secrets.keys = (
lib.lists.flatten (
lib.attrsets.mapAttrsToList (k: project:
lib.attrsets.mapAttrsToList (k: v:
Type = "forking";
User = "buildbot";
Group = "buildbot";
+ RuntimeDirectory = "buildbot";
+ RuntimeDirectoryPreserve = "yes";
+ StateDirectory = "buildbot";
SupplementaryGroups = "keys";
WorkingDirectory = "${varDir}/${project.name}";
ExecStart = "${buildbot}/bin/buildbot start";