From a907f926c120f10945c47cdaba7405fe08cfd9ee Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 15 Dec 2015 22:25:46 +0100 Subject: m 3 buildbot: first working commit for buildbot master --- makefu/3modules/buildbot/master.nix | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'makefu/3modules') diff --git a/makefu/3modules/buildbot/master.nix b/makefu/3modules/buildbot/master.nix index 310b8460..d8e917a2 100644 --- a/makefu/3modules/buildbot/master.nix +++ b/makefu/3modules/buildbot/master.nix @@ -12,7 +12,8 @@ let c['slaves'] = [] # TODO: template potential buildslaves # TODO: set password? - for i in [ 'testslave' ]: + slavenames= [ 'testslave' ] + for i in slavenames: c['slaves'].append(buildslave.BuildSlave(i, "krebspass")) c['protocols'] = {'pb': {'port': 9989}} @@ -56,7 +57,7 @@ let c['builders'].append( util.BuilderConfig(name="runtests", # TODO: only some slaves being used in builder? - slavenames=c['slaves'], + slavenames=slavenames, factory=factory)) ####### Status of Builds @@ -84,7 +85,7 @@ let irc = words.IRC("irc.freenode.net", "krebsbuild", channels=["krebs"], notify_events={ - 'sucess': 1, + 'success': 1, 'failure': 1, 'exception': 1, 'successToFailure': 1, @@ -145,26 +146,34 @@ let description = "Buildbot Master"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - serviceConfig = { + serviceConfig = let + workdir="${lib.shell.escape cfg.workDir}"; + in { + pidfile="${workdir}/twistd.pid"; PermissionsStartOnly = true; + Type = "forking"; + PIDFile = "${workdir}/twistd.pid"; # TODO: maybe also prepare buildbot.tac? ExecStartPre = pkgs.writeScript "buildbot-master-init" '' #!/bin/sh set -efux - workdir=${lib.shell.escape cfg.workDir} - if [ ! -e $workdir ];then - mkdir -p $workdir - ${buildbot}/bin/buildbot create-master -r -l 10 -f $workdir - chown buildbotMaster:buildbotMaster $workdir + if [ ! -e ${workdir} ];then + mkdir -p ${workdir} + ${buildbot}/bin/buildbot create-master -r -l 10 -f ${workdir} fi # always override the master.cfg - cp ${toString buildbot-master-config} "$workdir/master.cfg" + cp ${buildbot-master-config} ${workdir}/master.cfg # sanity - ${buildbot}/bin/buildbot checkconfig $workdir - # upgrade - ${buildbot}/bin/buildbot upgrade-master $workdir + ${buildbot}/bin/buildbot checkconfig ${workdir} + + # TODO: maybe upgrade? + # ${buildbot}/bin/buildbot upgrade-master ${workdir} + + chown buildbotMaster:buildbotMaster -R ${workdir} ''; - ExecStart = "${buildbot}/bin/buildbot ${lib.shell.escape cfg.workDir}"; + ExecStart = "${buildbot}/bin/buildbot start ${workdir}"; + ExecStop = "${buildbot}/bin/buildbot stop ${workdir}"; + ExecReload = "${buildbot}/bin/buildbot reconfig ${workdir}"; PrivateTmp = "true"; User = "buildbotMaster"; Restart = "always"; -- cgit v1.2.3