buildbot: 0.9.3 -> 0.9.4

- adds jwt
- adds module tests
- master.cfg as path in module
- fix systemd worker config
- builds on darwin
- tested on nixos
This commit is contained in:
Fernando J Pando 2017-02-27 14:02:11 -05:00 committed by Franz Pletz
parent d102115101
commit 9f062c2c0b
6 changed files with 66 additions and 34 deletions

View File

@ -28,7 +28,7 @@ let
${cfg.extraConfig}
''
else pkgs.writeText "master.cfg" cfg.masterCfg;
else cfg.masterCfg;
in {
options = {
@ -66,13 +66,10 @@ in {
};
masterCfg = mkOption {
type = types.nullOr types.str;
description = ''
Optionally pass raw master.cfg file as string.
Other options in this configuration will be ignored.
'';
type = types.nullOr types.path;
description = "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
default = null;
example = "BuildmasterConfig = c = {}";
example = "/etc/nixos/buildbot/master.cfg";
};
schedulers = mkOption {
@ -88,7 +85,7 @@ in {
type = types.listOf types.str;
description = "List of Builders.";
default = [
"util.BuilderConfig(name='runtests',workernames=['default-worker'],factory=factory)"
"util.BuilderConfig(name='runtests',workernames=['example-worker'],factory=factory)"
];
};
@ -183,10 +180,7 @@ in {
package = mkOption {
type = types.package;
default = pkgs.buildbot-ui;
description = ''
Package to use for buildbot.
<literal>buildbot-full</literal> is required in order to use local workers.
'';
description = "Package to use for buildbot.";
example = pkgs.buildbot-full;
};

View File

@ -100,14 +100,11 @@ in {
systemd.services.buildbot-worker = {
description = "Buildbot Worker.";
after = [ "network.target" ];
after = [ "network.target" "buildbot-master.service" ];
wantedBy = [ "multi-user.target" ];
wants = [ "buildbot-master.service" ];
path = cfg.packages;
preStart = ''
# NOTE: ensure master has time to start in case running on localhost
${pkgs.coreutils}/bin/sleep 4
${pkgs.coreutils}/bin/mkdir -vp ${cfg.buildbotDir}
${cfg.package}/bin/buildbot-worker create-worker ${cfg.buildbotDir} ${cfg.masterUrl} ${cfg.workerUser} ${cfg.workerPass}
'';

46
nixos/tests/buildbot.nix Normal file
View File

@ -0,0 +1,46 @@
# Test ensures buildbot master comes up correctly and workers can connect
import ./make-test.nix ({ pkgs, ... } : {
name = "buildbot";
nodes = {
bbmaster = { config, pkgs, nodes, ... }: {
services.buildbot-master = {
enable = true;
factorySteps = [
"steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')"
"steps.ShellCommand(command=['trial', 'pyflakes'])"
];
changeSource = [
"changes.GitPoller('git://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)"
];
};
networking.firewall.allowedTCPPorts = [ 8010 9989 ];
};
bbworker = { config, pkgs, ... }: {
services.buildbot-worker = {
enable = true;
masterUrl = "bbmaster:9989";
};
};
};
testScript = ''
$bbmaster->waitForUnit("network.target");
$bbworker->waitForUnit("network.target");
# Additional tests to be added
#$bbmaster->waitForUnit("buildbot-master.service");
#$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die;
#$bbworker->waitForUnit("buildbot-worker.service");
#$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die;
'';
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ nand0p ];
};
})

View File

@ -4,10 +4,10 @@
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "1yw7knk5dcvwms14vqwlp89flhjf8567l17s9cq7vydh760nmg62";
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
};
buildInputs = with pythonPackages; [
@ -41,6 +41,7 @@ pythonPackages.buildPythonApplication (rec {
dateutil
txaio
autobahn
pyjwt
# tls
pyopenssl
@ -70,7 +71,6 @@ pythonPackages.buildPythonApplication (rec {
homepage = http://buildbot.net/;
description = "Continuous integration system that automates the build/test cycle";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.linux;
license = licenses.gpl2;
};
})

View File

@ -4,11 +4,11 @@ let
buildbot-pkg = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-pkg";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "02949cvmghyh313i1hmplwxp3nzq789kk85xjx2ir82cpr1d6h6j";
sha256 = "09a3yvs5hhf8syrkyydznmymgg86dpvgrwy9rb3bryq00wpjb3wn";
};
propagatedBuildInputs = with pythonPackages; [ setuptools ];
@ -17,7 +17,6 @@ let
homepage = http://buildbot.net/;
description = "Buildbot Packaging Helper";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
license = licenses.gpl2;
};
};
@ -26,7 +25,7 @@ in {
www = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot_www";
version = "0.9.3";
version = "0.9.4";
# NOTE: wheel is used due to buildbot circular dependency
format = "wheel";
@ -34,14 +33,13 @@ in {
src = pythonPackages.fetchPypi {
inherit pname version format;
python = "py2";
sha256 = "0yggg6mcykcnv41srl2sp2zwx2r38vb6a8jgxh1a4825mspm2jf7";
sha256 = "08m4h2pf6hgi8igh2j0qzfq49izc2z0qqj6ddxk0di5l306jx4im";
};
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Buildbot UI";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
license = licenses.gpl2;
};
};
@ -49,11 +47,11 @@ in {
console-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-console-view";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "1rkzakm05x72nvdivc5bc3gab3nyasdfvlwnwril90jj9q1b92dk";
sha256 = "1w2vv8iyzl7ak4161avp9n6mhh08adav2fl82bbm17a3064apl8n";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@ -62,7 +60,6 @@ in {
homepage = http://buildbot.net/;
description = "Buildbot Console View Plugin";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
license = licenses.gpl2;
};
};
@ -70,11 +67,11 @@ in {
waterfall-view = pythonPackages.buildPythonPackage rec {
name = "${pname}-${version}";
pname = "buildbot-waterfall-view";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "033x2cs0znhk1j0lw067nmjw2m7yy1fdq5qch0sx50jnpjiq6g6g";
sha256 = "17xn6vrr0k2xabw6hr9sdyy0ry3llyjfmc79qrpgp5bsly2qv3jf";
};
propagatedBuildInputs = with pythonPackages; [ buildbot-pkg ];
@ -83,7 +80,6 @@ in {
homepage = http://buildbot.net/;
description = "Buildbot Waterfall View Plugin";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
license = licenses.gpl2;
};
};

View File

@ -3,11 +3,11 @@
pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot-worker";
version = "0.9.3";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "176kp04g4c7gj15f73wppraqrirbfclyx214gcz966019niikcsp";
sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj";
};
buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
@ -21,7 +21,6 @@ pythonPackages.buildPythonApplication (rec {
homepage = http://buildbot.net/;
description = "Buildbot Worker Daemon";
maintainers = with maintainers; [ nand0p ryansydnor ];
platforms = platforms.all;
license = licenses.gpl2;
};
})