From 6d7dfa388e34e3ea43ebaaaa273d008a141ee503 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:05:25 +0200 Subject: buildbot: cherry-pick working buildbot-classic definition from nixpkgs --- krebs/3modules/buildbot/master.nix | 9 +-- krebs/3modules/buildbot/slave.nix | 7 +-- krebs/5pkgs/simple/buildbot-slave/default.nix | 66 +++++++++++++++++++++ krebs/5pkgs/simple/buildbot/default.nix | 82 +++++++++++++++++++++++++++ 4 files changed, 150 insertions(+), 14 deletions(-) create mode 100644 krebs/5pkgs/simple/buildbot-slave/default.nix create mode 100644 krebs/5pkgs/simple/buildbot/default.nix (limited to 'krebs') diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index 6c7af6da5..432b93b05 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -3,14 +3,7 @@ with import ; 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; + buildbot = pkgs.buildbot; buildbot-master-config = pkgs.writeText "buildbot-master.cfg" '' # -*- python -*- from buildbot.plugins import * diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix index 932923ae5..e93c190dc 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,11 +2,6 @@ with import ; let - nixpkgs-fix = import (pkgs.fetchgit { - url = https://github.com/nixos/nixpkgs; - rev = "e026b5c243ea39810826e68362718f5d703fb5d0"; - sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8"; - }) {}; buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" '' import os @@ -158,7 +153,7 @@ let workdir = shell.escape cfg.workDir; contact = shell.escape cfg.contact; description = shell.escape cfg.description; - buildbot = nixpkgs-fix.buildbot-slave; + buildbot = pkgs.buildbot-slave; # TODO:make this in { PermissionsStartOnly = true; diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix new file mode 100644 index 000000000..30fbe0569 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-slave/default.nix @@ -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; + }; +}) diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix new file mode 100644 index 000000000..a246044d6 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -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; + }; +}) -- cgit v1.2.3 From 4c698a40dc7a7537b588985130fd6e40fea8ba9b Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:46:20 +0200 Subject: buildbot: use buildbot-classic from staging --- krebs/5pkgs/simple/buildbot/default.nix | 36 +++++++++++---------------------- 1 file changed, 12 insertions(+), 24 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix index a246044d6..5b35a9cdc 100644 --- a/krebs/5pkgs/simple/buildbot/default.nix +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -1,38 +1,26 @@ -{ stdenv, buildPythonApplication, fetchurl, twisted, dateutil, jinja2 -, sqlalchemy_migrate_0_7 -, enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null +{ stdenv, python2Packages, fetchFromGitHub +, enableDebugClient ? false }: # enableDebugClient enables "buildbot debugclient", a Gtk-based debug control # panel. Its mostly for developers. -assert enableDebugClient -> pygobject != null && pyGtkGlade != null; +assert enableDebugClient -> python2Packages.pygobject != null && python2Packages.pyGtkGlade != null; -buildPythonApplication (rec { - name = "buildbot-0.8.12"; - namePrefix = ""; +with python2Packages; buildPythonApplication (rec { + name = "buildbot-classic-2017-07-23"; - src = fetchurl { - url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz"; - sha256 = "1mn4h04sp6smr3ahqfflys15cpn13q9mfkapcs2jc4ppvxv6kdn6"; + src = fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "2ef3315e0ac8f387ab751d02ee68d166909283aa"; + sha256 = "00amqarknbh1p141h14jw4r8d23ih0xgf1h4jscp76ba340drjfj"; }; - 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 + [ twisted dateutil jinja2 sqlalchemy_migrate pathlib ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ]; - + postUnpack = "sourceRoot=\${sourceRoot}/master"; # What's up with this?! 'trial' should be 'test', no? # # running tests -- cgit v1.2.3 From f5459736cfbf2f3f23d525887184eadd743e6e91 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:52:01 +0200 Subject: buildbot-slave: use buildbot-classic --- krebs/5pkgs/simple/buildbot-slave/default.nix | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix index 30fbe0569..7cf7cd5e3 100644 --- a/krebs/5pkgs/simple/buildbot-slave/default.nix +++ b/krebs/5pkgs/simple/buildbot-slave/default.nix @@ -1,19 +1,18 @@ -{ stdenv, buildPythonApplication, fetchurl, coreutils, twisted }: +{ stdenv, python2Packages, fetchFromGitHub, coreutils }: -buildPythonApplication (rec { - name = "buildbot-slave-0.8.10"; - namePrefix = ""; +python2Packages.buildPythonApplication (rec { + name = "buildbot-slave-classic-2017-07-23"; - src = fetchurl { - url = "https://pypi.python.org/packages/source/b/buildbot-slave/${name}.tar.gz"; - sha256 = "09pncw44c7vqrl7zyn1nvfismiqi9s51axk9cqxn9gq7jhj38mpg"; + src = fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "7c2826756a00ade7a1d6d20b4e9430710d2bc29e"; + sha256 = "0za2k5kap6zky304rjknlvm3gyvw0q0p52c3jjmkf708s9gmyfyg"; }; - patchPhase = '' - substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail - ''; + postUnpack = "sourceRoot=\${sourceRoot}/slave"; - propagatedBuildInputs = [ twisted ]; + propagatedBuildInputs = with python2Packages; [ twisted pathlib ]; # What's up with this?! 'trial' should be 'test', no? # -- cgit v1.2.3 From 6a1d93192fb0c02118f499c1551fbc4ae346dc08 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 24 Jul 2017 00:05:49 +0200 Subject: buildbot: bump to 38b780ee6 --- krebs/5pkgs/simple/buildbot-slave/default.nix | 4 ++-- krebs/5pkgs/simple/buildbot/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix index 7cf7cd5e3..a2a01f685 100644 --- a/krebs/5pkgs/simple/buildbot-slave/default.nix +++ b/krebs/5pkgs/simple/buildbot-slave/default.nix @@ -6,8 +6,8 @@ python2Packages.buildPythonApplication (rec { src = fetchFromGitHub { owner = "krebscode"; repo = "buildbot-classic"; - rev = "7c2826756a00ade7a1d6d20b4e9430710d2bc29e"; - sha256 = "0za2k5kap6zky304rjknlvm3gyvw0q0p52c3jjmkf708s9gmyfyg"; + rev = "38b780ee6ceee346686f76eba363d98204b73d24"; + sha256 = "0sn0clrbkdnryyiwhrm8an53k3awwbj6m9cz8zj1jz8qdggd9fff"; }; postUnpack = "sourceRoot=\${sourceRoot}/slave"; diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix index 5b35a9cdc..dc9d331a4 100644 --- a/krebs/5pkgs/simple/buildbot/default.nix +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -13,8 +13,8 @@ with python2Packages; buildPythonApplication (rec { src = fetchFromGitHub { owner = "krebscode"; repo = "buildbot-classic"; - rev = "2ef3315e0ac8f387ab751d02ee68d166909283aa"; - sha256 = "00amqarknbh1p141h14jw4r8d23ih0xgf1h4jscp76ba340drjfj"; + rev = "38b780ee6ceee346686f76eba363d98204b73d24"; + sha256 = "0sn0clrbkdnryyiwhrm8an53k3awwbj6m9cz8zj1jz8qdggd9fff"; }; propagatedBuildInputs = -- cgit v1.2.3 From 0c5fbfde85ea4d3576284206ee67c0e4f7edcad3 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 24 Jul 2017 10:29:34 +0200 Subject: buildbot: bump to new staging --- krebs/5pkgs/simple/buildbot-slave/default.nix | 4 ++-- krebs/5pkgs/simple/buildbot/default.nix | 19 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix index a2a01f685..db61d7c3f 100644 --- a/krebs/5pkgs/simple/buildbot-slave/default.nix +++ b/krebs/5pkgs/simple/buildbot-slave/default.nix @@ -6,8 +6,8 @@ python2Packages.buildPythonApplication (rec { src = fetchFromGitHub { owner = "krebscode"; repo = "buildbot-classic"; - rev = "38b780ee6ceee346686f76eba363d98204b73d24"; - sha256 = "0sn0clrbkdnryyiwhrm8an53k3awwbj6m9cz8zj1jz8qdggd9fff"; + rev = "5b4f5f6f1"; + sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; }; postUnpack = "sourceRoot=\${sourceRoot}/slave"; diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix index dc9d331a4..5f1081278 100644 --- a/krebs/5pkgs/simple/buildbot/default.nix +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -13,23 +13,18 @@ with python2Packages; buildPythonApplication (rec { src = fetchFromGitHub { owner = "krebscode"; repo = "buildbot-classic"; - rev = "38b780ee6ceee346686f76eba363d98204b73d24"; - sha256 = "0sn0clrbkdnryyiwhrm8an53k3awwbj6m9cz8zj1jz8qdggd9fff"; + rev = "5b4f5f6f1"; + sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; }; propagatedBuildInputs = - [ twisted dateutil jinja2 sqlalchemy_migrate pathlib + [ twisted dateutil jinja2 sqlalchemy_migrate ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ]; postUnpack = "sourceRoot=\${sourceRoot}/master"; - # 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' + + # checkPhase = "trial buildbot"; + #doCheck = true; + doCheck = false; postInstall = '' -- cgit v1.2.3 From 4044ac12863b96b9e1983a95f790b50b5039e287 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 24 Jul 2017 10:49:31 +0200 Subject: mv buildbot{-classic,} --- krebs/3modules/buildbot/master.nix | 2 +- krebs/3modules/buildbot/slave.nix | 4 +- krebs/5pkgs/simple/buildbot-classic/default.nix | 65 ++++++++++++++++++++++ .../simple/buildbot-slave-classic/default.nix | 60 ++++++++++++++++++++ krebs/5pkgs/simple/buildbot-slave/default.nix | 65 ---------------------- krebs/5pkgs/simple/buildbot/default.nix | 65 ---------------------- 6 files changed, 128 insertions(+), 133 deletions(-) create mode 100644 krebs/5pkgs/simple/buildbot-classic/default.nix create mode 100644 krebs/5pkgs/simple/buildbot-slave-classic/default.nix delete mode 100644 krebs/5pkgs/simple/buildbot-slave/default.nix delete mode 100644 krebs/5pkgs/simple/buildbot/default.nix (limited to 'krebs') diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index 432b93b05..dce3745dc 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -3,7 +3,7 @@ with import ; let - buildbot = pkgs.buildbot; + buildbot = pkgs.buildbot-classic; buildbot-master-config = pkgs.writeText "buildbot-master.cfg" '' # -*- python -*- from buildbot.plugins import * diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix index e93c190dc..345d4a3ea 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,7 +2,7 @@ with import ; let - + pkg = pkgs.buildbot-classic-slave; buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" '' import os @@ -153,7 +153,7 @@ let workdir = shell.escape cfg.workDir; contact = shell.escape cfg.contact; description = shell.escape cfg.description; - buildbot = pkgs.buildbot-slave; + buildbot = pkg; # TODO:make this in { PermissionsStartOnly = true; diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix new file mode 100644 index 000000000..5f1081278 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-classic/default.nix @@ -0,0 +1,65 @@ +{ 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; + }; +}) diff --git a/krebs/5pkgs/simple/buildbot-slave-classic/default.nix b/krebs/5pkgs/simple/buildbot-slave-classic/default.nix new file mode 100644 index 000000000..83da05c3f --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-slave-classic/default.nix @@ -0,0 +1,60 @@ +{ stdenv, pkgs, python2Packages, fetchFromGitHub, coreutils }: + +python2Packages.buildPythonApplication (rec { + name = "buildbot-slave-classic-2017-07-23"; + + src = pkgs.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; + }; +}) diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix deleted file mode 100644 index db61d7c3f..000000000 --- a/krebs/5pkgs/simple/buildbot-slave/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ stdenv, python2Packages, fetchFromGitHub, coreutils }: - -python2Packages.buildPythonApplication (rec { - name = "buildbot-slave-classic-2017-07-23"; - - src = fetchFromGitHub { - owner = "krebscode"; - repo = "buildbot-classic"; - rev = "5b4f5f6f1"; - sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; - }; - - 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; - }; -}) diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix deleted file mode 100644 index 5f1081278..000000000 --- a/krebs/5pkgs/simple/buildbot/default.nix +++ /dev/null @@ -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; - }; -}) -- cgit v1.2.3 From 8939f22dcd7988f079bea5d4c246dffb83255fac Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 24 Jul 2017 10:54:57 +0200 Subject: buildbot-slave-classic: take buildbot-classic as argument --- krebs/5pkgs/simple/buildbot-slave-classic/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-slave-classic/default.nix b/krebs/5pkgs/simple/buildbot-slave-classic/default.nix index 83da05c3f..0b1ea73a3 100644 --- a/krebs/5pkgs/simple/buildbot-slave-classic/default.nix +++ b/krebs/5pkgs/simple/buildbot-slave-classic/default.nix @@ -1,9 +1,9 @@ -{ stdenv, pkgs, python2Packages, fetchFromGitHub, coreutils }: +{ stdenv, buildbot-classic, python2Packages, fetchFromGitHub, coreutils }: python2Packages.buildPythonApplication (rec { name = "buildbot-slave-classic-2017-07-23"; - src = pkgs.buildbot-classic.src; + src = buildbot-classic.src; postUnpack = "sourceRoot=\${sourceRoot}/slave"; -- cgit v1.2.3 From 17d99bea38bc72f599a157b0e52e954042bb32e2 Mon Sep 17 00:00:00 2001 From: makefu Date: Mon, 24 Jul 2017 17:36:25 +0200 Subject: buildbot-slave-classic -> buildbot-classic-slave --- .../simple/buildbot-classic-slave/default.nix | 60 ++++++++++++++++++++++ .../simple/buildbot-slave-classic/default.nix | 60 ---------------------- 2 files changed, 60 insertions(+), 60 deletions(-) create mode 100644 krebs/5pkgs/simple/buildbot-classic-slave/default.nix delete mode 100644 krebs/5pkgs/simple/buildbot-slave-classic/default.nix (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix new file mode 100644 index 000000000..0b1ea73a3 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix @@ -0,0 +1,60 @@ +{ 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; + }; +}) diff --git a/krebs/5pkgs/simple/buildbot-slave-classic/default.nix b/krebs/5pkgs/simple/buildbot-slave-classic/default.nix deleted file mode 100644 index 0b1ea73a3..000000000 --- a/krebs/5pkgs/simple/buildbot-slave-classic/default.nix +++ /dev/null @@ -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; - }; -}) -- cgit v1.2.3 From 80d72a7243408cfd1e31011f1f67a03fd4f27cc8 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 25 Jul 2017 15:04:16 +0200 Subject: buildbot: override sources instead of repackage --- krebs/3modules/buildbot/master.nix | 16 +++++- krebs/3modules/buildbot/slave.nix | 15 ++++- .../simple/buildbot-classic-slave/default.nix | 60 -------------------- krebs/5pkgs/simple/buildbot-classic/default.nix | 65 ---------------------- 4 files changed, 29 insertions(+), 127 deletions(-) delete mode 100644 krebs/5pkgs/simple/buildbot-classic-slave/default.nix delete mode 100644 krebs/5pkgs/simple/buildbot-classic/default.nix (limited to 'krebs') diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index dce3745dc..12c685b82 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -2,8 +2,22 @@ with import ; 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 * diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix index 345d4a3ea..698bf3bcd 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,7 +2,20 @@ with import ; 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 diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix deleted file mode 100644 index 0b1ea73a3..000000000 --- a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix +++ /dev/null @@ -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; - }; -}) diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix deleted file mode 100644 index 5f1081278..000000000 --- a/krebs/5pkgs/simple/buildbot-classic/default.nix +++ /dev/null @@ -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; - }; -}) -- cgit v1.2.3 From 7aa31b7babafb2e10bbf8418800ef561bccbd67b Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 25 Jul 2017 23:10:51 +0200 Subject: krebs buildbot: reintroduce packages with minimal overrides --- krebs/3modules/buildbot/master.nix | 28 +++---------- krebs/3modules/buildbot/slave.nix | 19 +-------- .../simple/buildbot-classic-slave/default.nix | 21 ++++++++++ krebs/5pkgs/simple/buildbot-classic/default.nix | 47 ++++++++++++++++++++++ 4 files changed, 76 insertions(+), 39 deletions(-) create mode 100644 krebs/5pkgs/simple/buildbot-classic-slave/default.nix create mode 100644 krebs/5pkgs/simple/buildbot-classic/default.nix (limited to 'krebs') diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index 12c685b82..a7624c8f2 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -2,22 +2,6 @@ with import ; 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-master-config = pkgs.writeText "buildbot-master.cfg" '' # -*- python -*- from buildbot.plugins import * @@ -364,7 +348,7 @@ let set -efux if [ ! -e ${workdir} ];then mkdir -p ${workdir} - ${buildbot}/bin/buildbot create-master -r -l 10 -f ${workdir} + ${pkgs.buildbot-classic}/bin/buildbot create-master -r -l 10 -f ${workdir} fi # always override the master.cfg cp ${buildbot-master-config} ${workdir}/master.cfg @@ -373,18 +357,18 @@ let ${ concatMapStringsSep "\n" (f: "cp ${secretsdir}/${f} ${workdir}/${f}" ) cfg.secrets } # sanity - ${buildbot}/bin/buildbot checkconfig ${workdir} + ${pkgs.buildbot-classic}/bin/buildbot checkconfig ${workdir} # TODO: maybe upgrade? not sure about this # normally we should write buildbot.tac by our own - # ${buildbot}/bin/buildbot upgrade-master ${workdir} + # ${pkgs.buildbot-classic}/bin/buildbot upgrade-master ${workdir} chmod 700 -R ${workdir} chown buildbotMaster:buildbotMaster -R ${workdir} ''; - ExecStart = "${buildbot}/bin/buildbot start ${workdir}"; - ExecStop = "${buildbot}/bin/buildbot stop ${workdir}"; - ExecReload = "${buildbot}/bin/buildbot reconfig ${workdir}"; + ExecStart = "${pkgs.buildbot-classic}/bin/buildbot start ${workdir}"; + ExecStop = "${pkgs.buildbot-classic}/bin/buildbot stop ${workdir}"; + ExecReload = "${pkgs.buildbot-classic}/bin/buildbot reconfig ${workdir}"; PrivateTmp = "true"; User = "buildbotMaster"; Restart = "always"; diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix index 698bf3bcd..544f9c4e0 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,20 +2,6 @@ with import ; let - # 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 @@ -166,7 +152,6 @@ let workdir = shell.escape cfg.workDir; contact = shell.escape cfg.contact; description = shell.escape cfg.description; - buildbot = pkg; # TODO:make this in { PermissionsStartOnly = true; @@ -183,8 +168,8 @@ let chown buildbotSlave:buildbotSlave -R ${workdir} chmod 700 -R ${workdir} ''; - ExecStart = "${buildbot}/bin/buildslave start ${workdir}"; - ExecStop = "${buildbot}/bin/buildslave stop ${workdir}"; + ExecStart = "${pkgs.buildbot-classic-slave}/bin/buildslave start ${workdir}"; + ExecStop = "${pkgs.buildbot-classic-slave}/bin/buildslave stop ${workdir}"; PrivateTmp = "true"; User = "buildbotSlave"; Restart = "always"; diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix new file mode 100644 index 000000000..193df579f --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix @@ -0,0 +1,21 @@ +{ coreutils, fetchgit, fetchFromGitHub, buildbot-classic, python2Packages, ... }: + +python2Packages.buildPythonApplication { + name = "buildbot-slave-0.8.12"; + namePrefix = ""; + + src = buildbot-classic.src; + postUnpack = "sourceRoot=\${sourceRoot}/slave"; + + patchPhase = '' + substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail + ''; + + propagatedBuildInputs = [ python2Packages.twisted ]; + doCheck = false; + + postInstall = '' + mkdir -p "$out/share/man/man1" + cp docs/buildslave.1 "$out/share/man/man1" + ''; +} diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix new file mode 100644 index 000000000..c28f77ef3 --- /dev/null +++ b/krebs/5pkgs/simple/buildbot-classic/default.nix @@ -0,0 +1,47 @@ +{ fetchgit, fetchFromGitHub, python2Packages, ... }: +let + # https://github.com/NixOS/nixpkgs/issues/14026 + nixpkgs-fix = import (fetchgit { + url = https://github.com/nixos/nixpkgs; + rev = "e026b5c243ea39810826e68362718f5d703fb5d0"; + sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8"; + }) {}; + +in nixpkgs-fix.buildPythonApplication { + name = "buildbot-0.8.12"; + namePrefix = ""; + patches = []; + + src = fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "5b4f5f6f1"; + sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; + }; + postUnpack = "sourceRoot=\${sourceRoot}/master"; + + 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 = [ + python2Packages.jinja2 + python2Packages.twisted + nixpkgs-fix.pythonPackages.dateutil_1_5 + nixpkgs-fix.pythonPackages.sqlalchemy_migrate_0_7 + ]; + doCheck = false; + postInstall = '' + mkdir -p "$out/share/man/man1" + cp docs/buildbot.1 "$out/share/man/man1" + ''; +} + -- cgit v1.2.3 From cba35726a19023d922b76410c9d7f5b84da3b252 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 25 Jul 2017 23:57:58 +0200 Subject: krebs buildbot: rename to build|$hostname --- krebs/2configs/shared-buildbot.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'krebs') diff --git a/krebs/2configs/shared-buildbot.nix b/krebs/2configs/shared-buildbot.nix index b534f0b62..11bbf6dc1 100644 --- a/krebs/2configs/shared-buildbot.nix +++ b/krebs/2configs/shared-buildbot.nix @@ -160,7 +160,7 @@ in { }; irc = { enable = true; - nick = "${hostname}bot"; + nick = "build|${hostname}"; server = "ni.r"; channels = [ "retiolum" ]; allowForce = true; -- cgit v1.2.3 From 423c6944bdd98552f6921bd139a93b8fb75fcd22 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 26 Jul 2017 00:12:46 +0200 Subject: buildbot -> buildbot-classic --- krebs/5pkgs/simple/buildbot-classic-slave/default.nix | 2 +- krebs/5pkgs/simple/buildbot-classic/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'krebs') diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix index 193df579f..c316889e4 100644 --- a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix +++ b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix @@ -1,7 +1,7 @@ { coreutils, fetchgit, fetchFromGitHub, buildbot-classic, python2Packages, ... }: python2Packages.buildPythonApplication { - name = "buildbot-slave-0.8.12"; + name = "buildbot-classic-slave-0.8.12"; namePrefix = ""; src = buildbot-classic.src; diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix index c28f77ef3..a3d924c4a 100644 --- a/krebs/5pkgs/simple/buildbot-classic/default.nix +++ b/krebs/5pkgs/simple/buildbot-classic/default.nix @@ -8,7 +8,7 @@ let }) {}; in nixpkgs-fix.buildPythonApplication { - name = "buildbot-0.8.12"; + name = "buildbot-classic-0.8.12"; namePrefix = ""; patches = []; -- cgit v1.2.3 From 4c8afbd21041c49e4eb6ed5357c6455391947014 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 26 Jul 2017 00:21:29 +0200 Subject: krebs: add hotdog-repo-sync --- krebs/3modules/krebs/default.nix | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'krebs') diff --git a/krebs/3modules/krebs/default.nix b/krebs/3modules/krebs/default.nix index 07543489a..0d990bf4f 100644 --- a/krebs/3modules/krebs/default.nix +++ b/krebs/3modules/krebs/default.nix @@ -120,6 +120,11 @@ in { krebs = { pubkey = "lol"; # TODO krebs.users.krebs.pubkey should be unnecessary }; + hotdog-repo-sync = { + name = "hotdog-repo-sync"; + mail = "spam@krebsco.de"; + pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILzTvaR3QqOD3oEEGHQzg/sRnNbKJnZYcV9htDvXmu53"; + }; puyak-repo-sync = { name = "puyak-repo-sync"; mail = "spam@krebsco.de"; -- cgit v1.2.3 From 18451c9dff24e42739f97c148360c5a7c06866b5 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 26 Jul 2017 00:22:45 +0200 Subject: add {cgit,build}.hotdog.r --- krebs/1systems/hotdog/config.nix | 3 +++ krebs/3modules/krebs/default.nix | 2 ++ 2 files changed, 5 insertions(+) (limited to 'krebs') diff --git a/krebs/1systems/hotdog/config.nix b/krebs/1systems/hotdog/config.nix index 18c8a86cd..5808df697 100644 --- a/krebs/1systems/hotdog/config.nix +++ b/krebs/1systems/hotdog/config.nix @@ -8,6 +8,9 @@ imports = [ + + + ]; krebs.build.host = config.krebs.hosts.hotdog; diff --git a/krebs/3modules/krebs/default.nix b/krebs/3modules/krebs/default.nix index 0d990bf4f..20b2384eb 100644 --- a/krebs/3modules/krebs/default.nix +++ b/krebs/3modules/krebs/default.nix @@ -38,6 +38,8 @@ in { ip6.addr = "42:0:0:0:0:0:77:3"; aliases = [ "hotdog.r" + "build.hotdog.r" + "cgit.hotdog.r" ]; tinc.pubkey = '' -----BEGIN RSA PUBLIC KEY----- -- cgit v1.2.3 From 6488d2e715e073519f4c6475b2a258a6507a6034 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 27 Jul 2017 19:43:23 +0200 Subject: krebs repo-sync: set latest to master --- krebs/2configs/repo-sync.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'krebs') diff --git a/krebs/2configs/repo-sync.nix b/krebs/2configs/repo-sync.nix index 157a30e69..b0b0b2f62 100644 --- a/krebs/2configs/repo-sync.nix +++ b/krebs/2configs/repo-sync.nix @@ -17,7 +17,7 @@ let verbose = false; channel = "#retiolum"; server = "ni.r"; - branches = [ "newest" ]; + branches = [ "master" ]; }; }); }; @@ -55,7 +55,7 @@ let }; latest = { url = "${mirror}${name}"; - ref = "heads/newest"; + ref = "heads/master"; }; }; krebs.git = defineRepo name true; -- cgit v1.2.3 From 1c659508ae476ada65982ff06f34e1d3ccf8ca7d Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 27 Jul 2017 19:43:41 +0200 Subject: krebs: set managed hosts --- krebs/3modules/krebs/default.nix | 3 +++ 1 file changed, 3 insertions(+) (limited to 'krebs') diff --git a/krebs/3modules/krebs/default.nix b/krebs/3modules/krebs/default.nix index 20b2384eb..27fbb7088 100644 --- a/krebs/3modules/krebs/default.nix +++ b/krebs/3modules/krebs/default.nix @@ -32,6 +32,7 @@ in { hosts = { hotdog = { owner = config.krebs.users.krebs; + managed = true; nets = { retiolum = { ip4.addr = "10.243.77.3"; @@ -58,6 +59,7 @@ in { }; puyak = { owner = config.krebs.users.krebs; + managed = true; nets = { retiolum = { ip4.addr = "10.243.77.2"; @@ -84,6 +86,7 @@ in { }; wolf = { owner = config.krebs.users.krebs; + managed = true; nets = { shack = { ip4.addr = "10.42.2.150" ; -- cgit v1.2.3 From 2257b79367b5f8015c3367b890f66e97d1b00a43 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 27 Jul 2017 19:45:45 +0200 Subject: add module: krebs.ci --- krebs/3modules/ci.nix | 175 +++++++++++++++++++++++++++++++++++++++++++++ krebs/3modules/default.nix | 1 + 2 files changed, 176 insertions(+) create mode 100644 krebs/3modules/ci.nix (limited to 'krebs') diff --git a/krebs/3modules/ci.nix b/krebs/3modules/ci.nix new file mode 100644 index 000000000..542a9252f --- /dev/null +++ b/krebs/3modules/ci.nix @@ -0,0 +1,175 @@ +{ config, pkgs, ... }: +with import ; +let + cfg = config.krebs.ci; + + hostname = config.networking.hostName; +in +{ + options.krebs.ci = { + enable = mkEnableOption "krebs continous integration"; + users = mkOption { + type = with types; attrsOf (submodule { + options = { + all = mkOption { + type = bool; + default = true; + }; + hosts = mkOption { + type = listOf str; + default = []; + }; + }; + }); + example = { + lass.all = true; + krebs = { + all = true; + hosts = [ + "test-all-krebs-modules" + "test-arch" + ]; + }; + }; + default = {}; + }; + }; + + config = mkIf cfg.enable { + services.nginx = { + enable = true; + virtualHosts.build = { + serverAliases = [ "build.${hostname}.r" ]; + locations."/".extraConfig = '' + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_pass http://127.0.0.1:${toString config.krebs.buildbot.master.web.port}; + ''; + }; + }; + + nix.gc.automatic = true; + nix.gc.dates = "05:23"; + + krebs.buildbot.master = { + slaves = { + testslave = "lasspass"; + }; + change_source.stockholm = '' + stockholm_repo = 'http://cgit.${hostname}.r/stockholm' + cs.append( + changes.GitPoller( + stockholm_repo, + workdir='stockholm-poller', branches=True, + project='stockholm', + pollinterval=10 + ) + ) + ''; + scheduler = { + build-scheduler = '' + # build all hosts + sched.append( + schedulers.SingleBranchScheduler( + change_filter=util.ChangeFilter(branch_re=".*"), + treeStableTimer=10, + name="build-all-branches", + builderNames=[ + "build-hosts" + ] + ) + ) + ''; + force-scheduler = '' + sched.append( + schedulers.ForceScheduler( + name="force", + builderNames=[ + "build-hosts" + ] + ) + ) + ''; + }; + builder_pre = '' + # prepare grab_repo step for stockholm + grab_repo = steps.Git( + repourl=stockholm_repo, + mode='full' + ) + + # prepare addShell function + def addShell(factory,**kwargs): + factory.addStep(steps.ShellCommand(**kwargs)) + ''; + builder = { + build-hosts = '' + f = util.BuildFactory() + f.addStep(grab_repo) + + def build_host(user, host): + addShell(f, + name="{}".format(host), + env={ + "NIX_PATH": "secrets=/var/src/stockholm/null:/var/src", + "NIX_REMOTE": "daemon", + "dummy_secrets": "true", + }, + command=[ + "nix-shell", "--run", + "test --user={} --system={} --target=$LOGNAME@${config.krebs.build.host.name}$HOME/{}".format(user, host, user) + ] + ) + + ${let + user-hosts = mapAttrs (user: a: let + managed-hosts = attrNames (filterAttrs (_: h: (h.owner.name == user) && h.managed) config.krebs.hosts); + defined-hosts = a.hosts; + in + defined-hosts ++ (optionals a.all managed-hosts) + ) cfg.users; + + in + concatStringsSep "\n" ( + (mapAttrsToList (user: hosts: + concatMapStringsSep "\n" (host: + "build_host(\"${user}\", \"${host}\")" + ) hosts + ) user-hosts) + ) + } + + bu.append( + util.BuilderConfig( + name="build-hosts", + slavenames=slavenames, + factory=f + ) + ) + + ''; + }; + enable = true; + web.enable = true; + irc = { + enable = true; + nick = "build|${hostname}"; + server = "ni.r"; + channels = [ "retiolum" "noise" ]; + allowForce = true; + }; + extraConfig = '' + c['buildbotURL'] = "http://build.${hostname}.r/" + ''; + }; + + krebs.buildbot.slave = { + enable = true; + masterhost = "localhost"; + username = "testslave"; + password = "lasspass"; + packages = with pkgs; [ gnumake jq nix populate ]; + }; + + }; +} diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index 6123b6dd9..b0ad2baf5 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -12,6 +12,7 @@ let ./buildbot/master.nix ./buildbot/slave.nix ./build.nix + ./ci.nix ./current.nix ./exim.nix ./exim-retiolum.nix -- cgit v1.2.3 From 9e0a791281c216b150e4c35a5d4011353237ddfd Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 27 Jul 2017 19:56:55 +0200 Subject: krebs: use krebs.ci in shared-buildbot --- krebs/1systems/hotdog/config.nix | 1 - krebs/1