buildbot: override sources instead of repackage

This commit is contained in:
makefu 2017-07-25 15:04:16 +02:00
parent 17d99bea38
commit 80d72a7243
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
4 changed files with 29 additions and 127 deletions

View File

@ -2,8 +2,22 @@
with import <stockholm/lib>;
let
# https://github.com/NixOS/nixpkgs/issues/14026
nixpkgs-fix = import (pkgs.fetchgit {
url = https://github.com/nixos/nixpkgs;
rev = "e026b5c243ea39810826e68362718f5d703fb5d0";
sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8";
}) {};
buildbot = nixpkgs-fix.buildbot.overrideDerivation (old: {
postUnpack = "sourceRoot=\${sourceRoot}/master";
patches = [];
src = pkgs.fetchFromGitHub {
owner = "krebscode";
repo = "buildbot-classic";
rev = "5b4f5f6f1";
sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; };});
buildbot = pkgs.buildbot-classic;
buildbot-master-config = pkgs.writeText "buildbot-master.cfg" ''
# -*- python -*-
from buildbot.plugins import *

View File

@ -2,7 +2,20 @@
with import <stockholm/lib>;
let
pkg = pkgs.buildbot-classic-slave;
# https://github.com/NixOS/nixpkgs/issues/14026
nixpkgs-fix = import (pkgs.fetchgit {
url = https://github.com/nixos/nixpkgs;
rev = "e026b5c243ea39810826e68362718f5d703fb5d0";
sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8";
}) {};
pkg = nixpkgs-fix.buildbot-slave.overrideDerivation (old: {
postUnpack = "sourceRoot=\${sourceRoot}/slave";
patches = [];
src = pkgs.fetchFromGitHub {
owner = "krebscode";
repo = "buildbot-classic";
rev = "5b4f5f6f1";
sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; };});
buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" ''
import os

View File

@ -1,60 +0,0 @@
{ stdenv, buildbot-classic, python2Packages, fetchFromGitHub, coreutils }:
python2Packages.buildPythonApplication (rec {
name = "buildbot-slave-classic-2017-07-23";
src = buildbot-classic.src;
postUnpack = "sourceRoot=\${sourceRoot}/slave";
propagatedBuildInputs = with python2Packages; [ twisted pathlib ];
# 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;
};
})

View File

@ -1,65 +0,0 @@
{ stdenv, python2Packages, fetchFromGitHub
, enableDebugClient ? false
}:
# enableDebugClient enables "buildbot debugclient", a Gtk-based debug control
# panel. Its mostly for developers.
assert enableDebugClient -> python2Packages.pygobject != null && python2Packages.pyGtkGlade != null;
with python2Packages; buildPythonApplication (rec {
name = "buildbot-classic-2017-07-23";
src = fetchFromGitHub {
owner = "krebscode";
repo = "buildbot-classic";
rev = "5b4f5f6f1";
sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93";
};
propagatedBuildInputs =
[ twisted dateutil jinja2 sqlalchemy_migrate
] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ];
postUnpack = "sourceRoot=\${sourceRoot}/master";
# checkPhase = "trial buildbot";
#doCheck = true;
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;
};
})