···
# Test ensures buildbot master comes up correctly and workers can connect
3
-
import ./make-test-python.nix (
10
+
services.buildbot-master = {
12
-
services.buildbot-master = {
15
-
# NOTE: use fake repo due to no internet in hydra ci
17
-
"steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')"
18
-
"steps.ShellCommand(command=['bash', 'fakerepo.sh'])"
21
-
"changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollInterval=300)"
24
-
networking.firewall.allowedTCPPorts = [
13
+
# NOTE: use fake repo due to no internet in hydra ci
15
+
"steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')"
16
+
"steps.ShellCommand(command=['bash', 'fakerepo.sh'])"
29
-
environment.systemPackages = with pkgs; [
19
+
"changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollInterval=300)"
22
+
networking.firewall.allowedTCPPorts = [
27
+
environment.systemPackages = with pkgs; [
38
-
services.buildbot-worker = {
40
-
masterUrl = "bbmaster:9989";
42
-
environment.systemPackages = with pkgs; [
36
+
services.buildbot-worker = {
38
+
masterUrl = "bbmaster:9989";
40
+
environment.systemPackages = with pkgs; [
51
-
services.openssh.enable = true;
52
-
networking.firewall.allowedTCPPorts = [
49
+
services.openssh.enable = true;
50
+
networking.firewall.allowedTCPPorts = [
54
+
environment.systemPackages = with pkgs; [ git ];
55
+
systemd.services.git-daemon = {
56
+
description = "Git daemon for the test";
57
+
wantedBy = [ "multi-user.target" ];
56
-
environment.systemPackages = with pkgs; [ git ];
57
-
systemd.services.git-daemon = {
58
-
description = "Git daemon for the test";
59
-
wantedBy = [ "multi-user.target" ];
65
-
serviceConfig.Restart = "always";
75
-
git config --global user.name 'Nobody Fakeuser'
76
-
git config --global user.email 'nobody\@fakerepo.com'
77
-
rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo
78
-
mkdir -pv /srv/repos/fakerepo ~/.ssh
79
-
ssh-keyscan -H gitrepo > ~/.ssh/known_hosts
80
-
cat ~/.ssh/known_hosts
63
+
serviceConfig.Restart = "always";
73
+
git config --global user.name 'Nobody Fakeuser'
74
+
git config --global user.email 'nobody\@fakerepo.com'
75
+
rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo
76
+
mkdir -pv /srv/repos/fakerepo ~/.ssh
77
+
ssh-keyscan -H gitrepo > ~/.ssh/known_hosts
78
+
cat ~/.ssh/known_hosts
82
-
mkdir -p /src/repos/fakerepo
83
-
cd /srv/repos/fakerepo
86
-
echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh
88
-
touch .git/git-daemon-export-ok
89
-
git add fakerepo.sh .git/git-daemon-export-ok
90
-
git commit -m fakerepo
93
-
git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr
80
+
mkdir -p /src/repos/fakerepo
81
+
cd /srv/repos/fakerepo
84
+
echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh
86
+
touch .git/git-daemon-export-ok
87
+
git add fakerepo.sh .git/git-daemon-export-ok
88
+
git commit -m fakerepo
91
+
git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr
100
-
gitrepo.wait_for_unit("git-daemon.service")
101
-
gitrepo.wait_for_unit("multi-user.target")
98
+
gitrepo.wait_for_unit("git-daemon.service")
99
+
gitrepo.wait_for_unit("multi-user.target")
103
-
with subtest("Repo is accessible via git daemon"):
104
-
bbmaster.systemctl("start network-online.target")
105
-
bbmaster.wait_for_unit("network-online.target")
106
-
bbmaster.succeed("rm -rfv /tmp/fakerepo")
107
-
bbmaster.succeed("git clone git://gitrepo/fakerepo /tmp/fakerepo")
101
+
with subtest("Repo is accessible via git daemon"):
102
+
bbmaster.systemctl("start network-online.target")
103
+
bbmaster.wait_for_unit("network-online.target")
104
+
bbmaster.succeed("rm -rfv /tmp/fakerepo")
105
+
bbmaster.succeed("git clone git://gitrepo/fakerepo /tmp/fakerepo")
109
-
with subtest("Master service and worker successfully connect"):
110
-
bbmaster.wait_for_unit("buildbot-master.service")
111
-
bbmaster.wait_until_succeeds("curl --fail -s --head http://bbmaster:8010")
112
-
bbworker.systemctl("start network-online.target")
113
-
bbworker.wait_for_unit("network-online.target")
114
-
bbworker.succeed("nc -z bbmaster 8010")
115
-
bbworker.succeed("nc -z bbmaster 9989")
116
-
bbworker.wait_for_unit("buildbot-worker.service")
107
+
with subtest("Master service and worker successfully connect"):
108
+
bbmaster.wait_for_unit("buildbot-master.service")
109
+
bbmaster.wait_until_succeeds("curl --fail -s --head http://bbmaster:8010")
110
+
bbworker.systemctl("start network-online.target")
111
+
bbworker.wait_for_unit("network-online.target")
112
+
bbworker.succeed("nc -z bbmaster 8010")
113
+
bbworker.succeed("nc -z bbmaster 9989")
114
+
bbworker.wait_for_unit("buildbot-worker.service")
118
-
with subtest("Stop buildbot worker"):
119
-
bbmaster.succeed("systemctl -l --no-pager status buildbot-master")
120
-
bbmaster.succeed("systemctl stop buildbot-master")
121
-
bbworker.fail("nc -z bbmaster 8010")
122
-
bbworker.fail("nc -z bbmaster 9989")
123
-
bbworker.succeed("systemctl -l --no-pager status buildbot-worker")
124
-
bbworker.succeed("systemctl stop buildbot-worker")
116
+
with subtest("Stop buildbot worker"):
117
+
bbmaster.succeed("systemctl -l --no-pager status buildbot-master")
118
+
bbmaster.succeed("systemctl stop buildbot-master")
119
+
bbworker.fail("nc -z bbmaster 8010")
120
+
bbworker.fail("nc -z bbmaster 9989")
121
+
bbworker.succeed("systemctl -l --no-pager status buildbot-worker")
122
+
bbworker.succeed("systemctl stop buildbot-worker")
126
-
with subtest("Buildbot daemon mode works"):
128
-
"buildbot create-master /tmp",
129
-
"mv -fv /tmp/master.cfg.sample /tmp/master.cfg",
130
-
"sed -i 's/8010/8011/' /tmp/master.cfg",
131
-
"buildbot start /tmp",
132
-
"nc -z bbmaster 8011",
134
-
bbworker.wait_until_succeeds("curl --fail -s --head http://bbmaster:8011")
135
-
bbmaster.wait_until_succeeds("buildbot stop /tmp")
136
-
bbworker.fail("nc -z bbmaster 8011")
124
+
with subtest("Buildbot daemon mode works"):
126
+
"buildbot create-master /tmp",
127
+
"mv -fv /tmp/master.cfg.sample /tmp/master.cfg",
128
+
"sed -i 's/8010/8011/' /tmp/master.cfg",
129
+
"buildbot start /tmp",
130
+
"nc -z bbmaster 8011",
132
+
bbworker.wait_until_succeeds("curl --fail -s --head http://bbmaster:8011")
133
+
bbmaster.wait_until_succeeds("buildbot stop /tmp")
134
+
bbworker.fail("nc -z bbmaster 8011")
139
-
meta.maintainers = pkgs.lib.teams.buildbot.members;
137
+
meta.maintainers = pkgs.lib.teams.buildbot.members;