buildbot: override sources instead of repackage
This commit is contained in:
parent
17d99bea38
commit
80d72a7243
@ -2,8 +2,22 @@
|
|||||||
|
|
||||||
with import <stockholm/lib>;
|
with import <stockholm/lib>;
|
||||||
let
|
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" ''
|
buildbot-master-config = pkgs.writeText "buildbot-master.cfg" ''
|
||||||
# -*- python -*-
|
# -*- python -*-
|
||||||
from buildbot.plugins import *
|
from buildbot.plugins import *
|
||||||
|
@ -2,7 +2,20 @@
|
|||||||
|
|
||||||
with import <stockholm/lib>;
|
with import <stockholm/lib>;
|
||||||
let
|
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" ''
|
buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" ''
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
@ -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;
|
|
||||||
};
|
|
||||||
})
|
|
@ -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;
|
|
||||||
};
|
|
||||||
})
|
|
Loading…
Reference in New Issue
Block a user