Skip to content

Commit

Permalink
buildbot: assorted cleanups
Browse files Browse the repository at this point in the history
Some changes to be more idiomatic and use stdenv building blocks more.
I also added a `buildbot.withPlugins` instead of the current plugins
mechanism, which forces an unnecessary rebuild of the package and reruns
all the tests. This should be equivalent and more pleasant to use in
practice.
  • Loading branch information
copumpkin committed Mar 8, 2017
1 parent ebeb722 commit 49b20e5
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 76 deletions.
139 changes: 73 additions & 66 deletions pkgs/development/tools/build-managers/buildbot/default.nix
Original file line number Diff line number Diff line change
@@ -1,76 +1,83 @@
{ stdenv, lib, fetchurl, coreutils, openssh, buildbot-worker, makeWrapper,
pythonPackages, gnused, plugins ? [] }:
{ stdenv, lib, openssh, buildbot-worker, pythonPackages, runCommand, makeWrapper }:

pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
};
let
withPlugins = plugins: runCommand "wrapped-${package.name}" {
buildInputs = [ makeWrapper ];
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
} ''
makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" pythonPackages.python.sitePackages plugins}
'';

buildInputs = with pythonPackages; [
lz4
txrequests
pyjade
boto3
moto
txgithub
mock
setuptoolsTrial
isort
pylint
astroid
pyflakes
openssh
buildbot-worker
makeWrapper
treq
];
package = pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot";
version = "0.9.4";

propagatedBuildInputs = with pythonPackages; [
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
};

# core
twisted
jinja2
zope_interface
sqlalchemy
sqlalchemy_migrate
future
dateutil
txaio
autobahn
pyjwt
buildInputs = with pythonPackages; [
lz4
txrequests
pyjade
boto3
moto
txgithub
mock
setuptoolsTrial
isort
pylint
astroid
pyflakes
openssh
buildbot-worker
treq
];

# tls
pyopenssl
service-identity
idna
propagatedBuildInputs = with pythonPackages; [

# docs
sphinx
sphinxcontrib-blockdiag
sphinxcontrib-spelling
pyenchant
docutils
ramlfications
sphinx-jinja
# core
twisted
jinja2
zope_interface
sqlalchemy
sqlalchemy_migrate
future
dateutil
txaio
autobahn
pyjwt

] ++ plugins;
# tls
pyopenssl
service-identity
idna

postPatch = ''
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py
'';
# docs
sphinx
sphinxcontrib-blockdiag
sphinxcontrib-spelling
pyenchant
docutils
ramlfications
sphinx-jinja

postFixup = ''
makeWrapper $out/bin/.buildbot-wrapped $out/bin/buildbot --set PYTHONPATH "$PYTHONPATH"
'';
];

postPatch = ''
substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
'';

passthru = { inherit withPlugins; };

meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Continuous integration system that automates the build/test cycle";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
})
meta = with stdenv.lib; {
homepage = http://buildbot.net/;
description = "Continuous integration system that automates the build/test cycle";
maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2;
};
});
in package
8 changes: 4 additions & 4 deletions pkgs/development/tools/build-managers/buildbot/worker.nix
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
{ stdenv, fetchurl, gnused, coreutils, pythonPackages }:
{ stdenv, pythonPackages }:

pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}";
pname = "buildbot-worker";
version = "0.9.4";

src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz";
src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj";
};

buildInputs = with pythonPackages; [ setuptoolsTrial mock ];
propagatedBuildInputs = with pythonPackages; [ twisted future ];

postPatch = ''
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot_worker/scripts/logwatcher.py
substituteInPlace buildbot_worker/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
'';

meta = with stdenv.lib; {
Expand Down
8 changes: 2 additions & 6 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6220,12 +6220,8 @@ with pkgs;
buildbot-plugins = callPackage ../development/tools/build-managers/buildbot/plugins.nix {
pythonPackages = python2Packages;
};
buildbot-ui = self.buildbot.override {
plugins = with self.buildbot-plugins; [ www ];
};
buildbot-full = self.buildbot.override {
plugins = with self.buildbot-plugins; [ www console-view waterfall-view ];
};
buildbot-ui = buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
buildbot-full = buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view ]);

buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { };

Expand Down

0 comments on commit 49b20e5

Please sign in to comment.