about summary refs log tree commit diff
path: root/nixos/tests/buildbot.nix
blob: 13a162e6c6e8faa944822ad6e60be5d07d8a076c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Test ensures buildbot master comes up correctly and workers can connect

import ./make-test.nix ({ pkgs, ... } : {
  name = "buildbot";

  nodes = {
    bbmaster = { config, pkgs, nodes, ... }: {
      services.buildbot-master = {
        enable = true;
        factorySteps = [
          "steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')"
          "steps.ShellCommand(command=['trial', 'pyflakes'])"
        ];
        changeSource = [
          "changes.GitPoller('git://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)"
        ];
      };
      networking.firewall.allowedTCPPorts = [ 8010 9989 ];
    };

    bbworker = { config, pkgs, ... }: {
      services.buildbot-worker = {
        enable = true;
        masterUrl = "bbmaster:9989";
      };
    };
  };

  testScript = ''

    $bbmaster->waitForUnit("network.target");
    $bbworker->waitForUnit("network.target");

    # Additional tests to be added
    #$bbmaster->waitForUnit("buildbot-master.service");
    #$bbmaster->waitUntilSucceeds("curl -s --head http://bbmaster:8010") =~ /200 OK/ or die;
    #$bbworker->waitForUnit("buildbot-worker.service");
    #$bbworker->waitUntilSucceeds("tail -10 /home/bbworker/worker/twistd.log") =~ /success/ or die;

  '';

  meta = with pkgs.stdenv.lib.maintainers; {
    maintainers = [ nand0p ];
  };

})