2 description = "The continuous integration framework";
3 inputs.flake-utils.url = "github:numtide/flake-utils";
5 url = "github:NixOS/nixpkgs/840c782d507d60aaa49aa9e3f6d0b0e780912742";
9 url = "https://git.immae.eu/perso/Immae/Projets/Buildbot/buildslist";
13 outputs = { self, nixpkgs, flake-utils, buildslist }: flake-utils.lib.eachSystem ["x86_64-linux"] (system:
15 pkgs = import nixpkgs { inherit system; overlays = []; };
16 python = pkgs.python38;
17 wokkel = python.pkgs.buildPythonPackage rec {
20 src = python.pkgs.fetchPypi {
21 inherit pname version;
22 sha256 = "1spq44gg8gsviqx1dvlmjpgfc0wk0jpyx4ap01y2pad1ai9cw016";
24 propagatedBuildInputs = with python.pkgs; [ twisted.extras.tls twisted incremental dateutil ];
27 buildbot_common = python.pkgs.buildPythonPackage {
28 name = "buildbot_common";
32 mkdir -p $out/${python.sitePackages}
33 cp -a $src $out/${python.sitePackages}/buildbot_common
36 buildbot-full = python.pkgs.buildbot-full.withPlugins [ buildslist-plugin ] // {
37 inherit buildbot_common;
38 buildbot_config = project: python.pkgs.buildPythonPackage (rec {
39 name = "buildbot_config-${project.name}";
40 src = if project.name == "test" then ./test_project else project.src;
43 mkdir -p $out/${python.sitePackages}
44 cp -a $src $out/${python.sitePackages}/buildbot_config
47 common_packages = pkgs: [
48 (pkgs.apprise.overridePythonAttrs(old: { propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.sleekxmpp ]; })) pkgs.libvirt pkgs.treq pkgs.ldap3
49 buildbot-full pkgs.buildbot-worker pkgs.pip buildbot_common
53 buildslist-plugin = pkgs.callPackage ./buildslist {
54 pythonPackages = python.pkgs;
55 buildslist_src = buildslist;
59 buildslist = buildslist-plugin;
60 buildbot-full = buildbot-full;
61 buildbot_common = buildbot_common;
63 defaultPackage = packages.buildbot-full;
64 legacyPackages = packages;
68 immae-buildbot = final: prev: {
69 immae-buildbot = self.defaultPackage."${final.system}";
72 overlay = overlays.immae-buildbot;