buildbot: assorted cleanups

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.
wip/yesman
Dan Peebles 7 years ago
parent ebeb722e14
commit 49b20e5569
  1. 139
      pkgs/development/tools/build-managers/buildbot/default.nix
  2. 8
      pkgs/development/tools/build-managers/buildbot/worker.nix
  3. 8
      pkgs/top-level/all-packages.nix

@ -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

@ -1,12 +1,12 @@
{ 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";
};
@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication (rec {
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; {

@ -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 { };

Loading…
Cancel
Save