summaryrefslogtreecommitdiffstats
path: root/makefu
diff options
context:
space:
mode:
Diffstat (limited to 'makefu')
-rw-r--r--makefu/3modules/buildbot/slave.nix28
1 files changed, 27 insertions, 1 deletions
diff --git a/makefu/3modules/buildbot/slave.nix b/makefu/3modules/buildbot/slave.nix
index 188a9283c..69d0361bf 100644
--- a/makefu/3modules/buildbot/slave.nix
+++ b/makefu/3modules/buildbot/slave.nix
@@ -38,7 +38,7 @@ let
allow_shutdown=allow_shutdown)
s.setServiceParent(application)
'';
-
+ default-packages = [ pkgs.git pkgs.bash ];
cfg = config.makefu.buildbot.slave;
api = {
@@ -91,6 +91,26 @@ let
'';
};
+ packages = mkOption {
+ default = [ pkgs.git ];
+ type = with types; listOf package;
+ description = ''
+ packages which should be in path for buildslave
+ '';
+ };
+
+ extraEnviron = mkOption {
+ default = {};
+ example = {
+ NIX_PATH = "nixpkgs=/path/to/my/nixpkgs";
+ };
+ type = types.attrsOf types.str;
+ description = ''
+ extra environment variables to be provided to the buildslave service
+ if you need nixpkgs, e.g. for running nix-shell you can set NIX_PATH here.
+ '';
+ };
+
extraConfig = mkOption {
default = "";
type = types.lines;
@@ -121,6 +141,12 @@ let
description = "Buildbot Slave for ${cfg.username}@${cfg.masterhost}";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
+ path = default-packages ++ cfg.packages;
+
+ environment = {
+ NIX_REMOTE="daemon";
+ } // cfg.extraEnviron;
+
serviceConfig = let
workdir = "${lib.shell.escape cfg.workDir}";
contact = "${lib.shell.escape cfg.contact}";