buildbot: cherry-pick working buildbot-classic definition from nixpkgs
This commit is contained in:
parent
01314f4b66
commit
6d7dfa388e
@ -3,14 +3,7 @@
|
|||||||
with import <stockholm/lib>;
|
with import <stockholm/lib>;
|
||||||
let
|
let
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/14026
|
buildbot = pkgs.buildbot;
|
||||||
nixpkgs-fix = import (pkgs.fetchgit {
|
|
||||||
url = https://github.com/nixos/nixpkgs;
|
|
||||||
rev = "e026b5c243ea39810826e68362718f5d703fb5d0";
|
|
||||||
sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8";
|
|
||||||
}) {};
|
|
||||||
|
|
||||||
buildbot = nixpkgs-fix.buildbot;
|
|
||||||
buildbot-master-config = pkgs.writeText "buildbot-master.cfg" ''
|
buildbot-master-config = pkgs.writeText "buildbot-master.cfg" ''
|
||||||
# -*- python -*-
|
# -*- python -*-
|
||||||
from buildbot.plugins import *
|
from buildbot.plugins import *
|
||||||
|
@ -2,11 +2,6 @@
|
|||||||
|
|
||||||
with import <stockholm/lib>;
|
with import <stockholm/lib>;
|
||||||
let
|
let
|
||||||
nixpkgs-fix = import (pkgs.fetchgit {
|
|
||||||
url = https://github.com/nixos/nixpkgs;
|
|
||||||
rev = "e026b5c243ea39810826e68362718f5d703fb5d0";
|
|
||||||
sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8";
|
|
||||||
}) {};
|
|
||||||
|
|
||||||
buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" ''
|
buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" ''
|
||||||
import os
|
import os
|
||||||
@ -158,7 +153,7 @@ let
|
|||||||
workdir = shell.escape cfg.workDir;
|
workdir = shell.escape cfg.workDir;
|
||||||
contact = shell.escape cfg.contact;
|
contact = shell.escape cfg.contact;
|
||||||
description = shell.escape cfg.description;
|
description = shell.escape cfg.description;
|
||||||
buildbot = nixpkgs-fix.buildbot-slave;
|
buildbot = pkgs.buildbot-slave;
|
||||||
# TODO:make this
|
# TODO:make this
|
||||||
in {
|
in {
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
|
66
krebs/5pkgs/simple/buildbot-slave/default.nix
Normal file
66
krebs/5pkgs/simple/buildbot-slave/default.nix
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
{ stdenv, buildPythonApplication, fetchurl, coreutils, twisted }:
|
||||||
|
|
||||||
|
buildPythonApplication (rec {
|
||||||
|
name = "buildbot-slave-0.8.10";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://pypi.python.org/packages/source/b/buildbot-slave/${name}.tar.gz";
|
||||||
|
sha256 = "09pncw44c7vqrl7zyn1nvfismiqi9s51axk9cqxn9gq7jhj38mpg";
|
||||||
|
};
|
||||||
|
|
||||||
|
patchPhase = ''
|
||||||
|
substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ twisted ];
|
||||||
|
|
||||||
|
# What's up with this?! 'trial' should be 'test', no?
|
||||||
|
#
|
||||||
|
# running tests
|
||||||
|
# usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
|
||||||
|
# or: setup.py --help [cmd1 cmd2 ...]
|
||||||
|
# or: setup.py --help-commands
|
||||||
|
# or: setup.py cmd --help
|
||||||
|
#
|
||||||
|
# error: invalid command 'trial'
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p "$out/share/man/man1"
|
||||||
|
cp docs/buildslave.1 "$out/share/man/man1"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://buildbot.net/;
|
||||||
|
|
||||||
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
|
|
||||||
|
description = "Continuous integration system that automates the build/test cycle";
|
||||||
|
|
||||||
|
longDescription =
|
||||||
|
'' The BuildBot is a system to automate the compile/test cycle
|
||||||
|
required by most software projects to validate code changes. By
|
||||||
|
automatically rebuilding and testing the tree each time something
|
||||||
|
has changed, build problems are pinpointed quickly, before other
|
||||||
|
developers are inconvenienced by the failure. The guilty
|
||||||
|
developer can be identified and harassed without human
|
||||||
|
intervention. By running the builds on a variety of platforms,
|
||||||
|
developers who do not have the facilities to test their changes
|
||||||
|
everywhere before checkin will at least know shortly afterwards
|
||||||
|
whether they have broken the build or not. Warning counts, lint
|
||||||
|
checks, image size, compile time, and other build parameters can
|
||||||
|
be tracked over time, are more visible, and are therefore easier
|
||||||
|
to improve.
|
||||||
|
|
||||||
|
The overall goal is to reduce tree breakage and provide a platform
|
||||||
|
to run tests or code-quality checks that are too annoying or
|
||||||
|
pedantic for any human to waste their time with. Developers get
|
||||||
|
immediate (and potentially public) feedback about their changes,
|
||||||
|
encouraging them to be more careful about testing before checking
|
||||||
|
in code.
|
||||||
|
'';
|
||||||
|
maintainers = with maintainers; [ bjornfor ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
})
|
82
krebs/5pkgs/simple/buildbot/default.nix
Normal file
82
krebs/5pkgs/simple/buildbot/default.nix
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
{ stdenv, buildPythonApplication, fetchurl, twisted, dateutil, jinja2
|
||||||
|
, sqlalchemy_migrate_0_7
|
||||||
|
, enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null
|
||||||
|
}:
|
||||||
|
|
||||||
|
# enableDebugClient enables "buildbot debugclient", a Gtk-based debug control
|
||||||
|
# panel. Its mostly for developers.
|
||||||
|
|
||||||
|
assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
|
||||||
|
|
||||||
|
buildPythonApplication (rec {
|
||||||
|
name = "buildbot-0.8.12";
|
||||||
|
namePrefix = "";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz";
|
||||||
|
sha256 = "1mn4h04sp6smr3ahqfflys15cpn13q9mfkapcs2jc4ppvxv6kdn6";
|
||||||
|
};
|
||||||
|
|
||||||
|
patchPhase =
|
||||||
|
# The code insists on /usr/bin/tail, /usr/bin/make, etc.
|
||||||
|
'' echo "patching erroneous absolute path references..."
|
||||||
|
for i in $(find -name \*.py)
|
||||||
|
do
|
||||||
|
sed -i "$i" \
|
||||||
|
-e "s|/usr/bin/python|$(type -P python)|g ; s|/usr/bin/||g"
|
||||||
|
done
|
||||||
|
|
||||||
|
sed -i 's/==/>=/' setup.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs =
|
||||||
|
[ twisted dateutil jinja2 sqlalchemy_migrate_0_7
|
||||||
|
] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ];
|
||||||
|
|
||||||
|
# What's up with this?! 'trial' should be 'test', no?
|
||||||
|
#
|
||||||
|
# running tests
|
||||||
|
# usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
|
||||||
|
# or: setup.py --help [cmd1 cmd2 ...]
|
||||||
|
# or: setup.py --help-commands
|
||||||
|
# or: setup.py cmd --help
|
||||||
|
#
|
||||||
|
# error: invalid command 'trial'
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p "$out/share/man/man1"
|
||||||
|
cp docs/buildbot.1 "$out/share/man/man1"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://buildbot.net/;
|
||||||
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
|
# Of course, we don't really need that on NixOS. :-)
|
||||||
|
description = "Continuous integration system that automates the build/test cycle";
|
||||||
|
longDescription =
|
||||||
|
'' The BuildBot is a system to automate the compile/test cycle
|
||||||
|
required by most software projects to validate code changes. By
|
||||||
|
automatically rebuilding and testing the tree each time something
|
||||||
|
has changed, build problems are pinpointed quickly, before other
|
||||||
|
developers are inconvenienced by the failure. The guilty
|
||||||
|
developer can be identified and harassed without human
|
||||||
|
intervention. By running the builds on a variety of platforms,
|
||||||
|
developers who do not have the facilities to test their changes
|
||||||
|
everywhere before checkin will at least know shortly afterwards
|
||||||
|
whether they have broken the build or not. Warning counts, lint
|
||||||
|
checks, image size, compile time, and other build parameters can
|
||||||
|
be tracked over time, are more visible, and are therefore easier
|
||||||
|
to improve.
|
||||||
|
|
||||||
|
The overall goal is to reduce tree breakage and provide a platform
|
||||||
|
to run tests or code-quality checks that are too annoying or
|
||||||
|
pedantic for any human to waste their time with. Developers get
|
||||||
|
immediate (and potentially public) feedback about their changes,
|
||||||
|
encouraging them to be more careful about testing before checking
|
||||||
|
in code.
|
||||||
|
'';
|
||||||
|
maintainers = with maintainers; [ bjornfor ];
|
||||||
|
platforms = platforms.all;
|
||||||
|
};
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user