nixosTests.buildbot: migrate to runTest (#395270)

zowoq 63228598 3217239d

Changed files
+120 -123
nixos
+1 -1
nixos/tests/all-tests.nix
···
btrbk-no-timer = handleTest ./btrbk-no-timer.nix { };
btrbk-section-order = handleTest ./btrbk-section-order.nix { };
budgie = handleTest ./budgie.nix { };
-
buildbot = handleTest ./buildbot.nix { };
+
buildbot = runTest ./buildbot.nix;
buildkite-agents = handleTest ./buildkite-agents.nix { };
c2fmzq = handleTest ./c2fmzq.nix { };
caddy = handleTest ./caddy.nix { };
+119 -122
nixos/tests/buildbot.nix
···
# Test ensures buildbot master comes up correctly and workers can connect
+
{ pkgs, ... }:
+
{
+
name = "buildbot";
-
import ./make-test-python.nix (
-
{ pkgs, ... }:
-
{
-
name = "buildbot";
+
nodes = {
+
bbmaster =
+
{ pkgs, ... }:
+
{
+
services.buildbot-master = {
+
enable = true;
-
nodes = {
-
bbmaster =
-
{ pkgs, ... }:
-
{
-
services.buildbot-master = {
-
enable = true;
-
-
# NOTE: use fake repo due to no internet in hydra ci
-
factorySteps = [
-
"steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')"
-
"steps.ShellCommand(command=['bash', 'fakerepo.sh'])"
-
];
-
changeSource = [
-
"changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollInterval=300)"
-
];
-
};
-
networking.firewall.allowedTCPPorts = [
-
8010
-
8011
-
9989
+
# NOTE: use fake repo due to no internet in hydra ci
+
factorySteps = [
+
"steps.Git(repourl='git://gitrepo/fakerepo.git', mode='incremental')"
+
"steps.ShellCommand(command=['bash', 'fakerepo.sh'])"
];
-
environment.systemPackages = with pkgs; [
-
git
-
buildbot-full
+
changeSource = [
+
"changes.GitPoller('git://gitrepo/fakerepo.git', workdir='gitpoller-workdir', branch='master', pollInterval=300)"
];
};
+
networking.firewall.allowedTCPPorts = [
+
8010
+
8011
+
9989
+
];
+
environment.systemPackages = with pkgs; [
+
git
+
buildbot-full
+
];
+
};
-
bbworker =
-
{ pkgs, ... }:
-
{
-
services.buildbot-worker = {
-
enable = true;
-
masterUrl = "bbmaster:9989";
-
};
-
environment.systemPackages = with pkgs; [
-
git
-
buildbot-worker
-
];
+
bbworker =
+
{ pkgs, ... }:
+
{
+
services.buildbot-worker = {
+
enable = true;
+
masterUrl = "bbmaster:9989";
};
+
environment.systemPackages = with pkgs; [
+
git
+
buildbot-worker
+
];
+
};
-
gitrepo =
-
{ pkgs, ... }:
-
{
-
services.openssh.enable = true;
-
networking.firewall.allowedTCPPorts = [
-
22
-
9418
+
gitrepo =
+
{ pkgs, ... }:
+
{
+
services.openssh.enable = true;
+
networking.firewall.allowedTCPPorts = [
+
22
+
9418
+
];
+
environment.systemPackages = with pkgs; [ git ];
+
systemd.services.git-daemon = {
+
description = "Git daemon for the test";
+
wantedBy = [ "multi-user.target" ];
+
after = [
+
"network.target"
+
"sshd.service"
];
-
environment.systemPackages = with pkgs; [ git ];
-
systemd.services.git-daemon = {
-
description = "Git daemon for the test";
-
wantedBy = [ "multi-user.target" ];
-
after = [
-
"network.target"
-
"sshd.service"
-
];
-
serviceConfig.Restart = "always";
-
path = with pkgs; [
-
coreutils
-
git
-
openssh
-
];
-
environment = {
-
HOME = "/root";
-
};
-
preStart = ''
-
git config --global user.name 'Nobody Fakeuser'
-
git config --global user.email 'nobody\@fakerepo.com'
-
rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo
-
mkdir -pv /srv/repos/fakerepo ~/.ssh
-
ssh-keyscan -H gitrepo > ~/.ssh/known_hosts
-
cat ~/.ssh/known_hosts
+
serviceConfig.Restart = "always";
+
path = with pkgs; [
+
coreutils
+
git
+
openssh
+
];
+
environment = {
+
HOME = "/root";
+
};
+
preStart = ''
+
git config --global user.name 'Nobody Fakeuser'
+
git config --global user.email 'nobody\@fakerepo.com'
+
rm -rvf /srv/repos/fakerepo.git /tmp/fakerepo
+
mkdir -pv /srv/repos/fakerepo ~/.ssh
+
ssh-keyscan -H gitrepo > ~/.ssh/known_hosts
+
cat ~/.ssh/known_hosts
-
mkdir -p /src/repos/fakerepo
-
cd /srv/repos/fakerepo
-
rm -rf *
-
git init
-
echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh
-
cat fakerepo.sh
-
touch .git/git-daemon-export-ok
-
git add fakerepo.sh .git/git-daemon-export-ok
-
git commit -m fakerepo
-
'';
-
script = ''
-
git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr
-
'';
-
};
+
mkdir -p /src/repos/fakerepo
+
cd /srv/repos/fakerepo
+
rm -rf *
+
git init
+
echo -e '#!/bin/sh\necho fakerepo' > fakerepo.sh
+
cat fakerepo.sh
+
touch .git/git-daemon-export-ok
+
git add fakerepo.sh .git/git-daemon-export-ok
+
git commit -m fakerepo
+
'';
+
script = ''
+
git daemon --verbose --export-all --base-path=/srv/repos --reuseaddr
+
'';
};
-
};
+
};
+
};
-
testScript = ''
-
gitrepo.wait_for_unit("git-daemon.service")
-
gitrepo.wait_for_unit("multi-user.target")
+
testScript = ''
+
gitrepo.wait_for_unit("git-daemon.service")
+
gitrepo.wait_for_unit("multi-user.target")
-
with subtest("Repo is accessible via git daemon"):
-
bbmaster.systemctl("start network-online.target")
-
bbmaster.wait_for_unit("network-online.target")
-
bbmaster.succeed("rm -rfv /tmp/fakerepo")
-
bbmaster.succeed("git clone git://gitrepo/fakerepo /tmp/fakerepo")
+
with subtest("Repo is accessible via git daemon"):
+
bbmaster.systemctl("start network-online.target")
+
bbmaster.wait_for_unit("network-online.target")
+
bbmaster.succeed("rm -rfv /tmp/fakerepo")
+
bbmaster.succeed("git clone git://gitrepo/fakerepo /tmp/fakerepo")
-
with subtest("Master service and worker successfully connect"):
-
bbmaster.wait_for_unit("buildbot-master.service")
-
bbmaster.wait_until_succeeds("curl --fail -s --head http://bbmaster:8010")
-
bbworker.systemctl("start network-online.target")
-
bbworker.wait_for_unit("network-online.target")
-
bbworker.succeed("nc -z bbmaster 8010")
-
bbworker.succeed("nc -z bbmaster 9989")
-
bbworker.wait_for_unit("buildbot-worker.service")
+
with subtest("Master service and worker successfully connect"):
+
bbmaster.wait_for_unit("buildbot-master.service")
+
bbmaster.wait_until_succeeds("curl --fail -s --head http://bbmaster:8010")
+
bbworker.systemctl("start network-online.target")
+
bbworker.wait_for_unit("network-online.target")
+
bbworker.succeed("nc -z bbmaster 8010")
+
bbworker.succeed("nc -z bbmaster 9989")
+
bbworker.wait_for_unit("buildbot-worker.service")
-
with subtest("Stop buildbot worker"):
-
bbmaster.succeed("systemctl -l --no-pager status buildbot-master")
-
bbmaster.succeed("systemctl stop buildbot-master")
-
bbworker.fail("nc -z bbmaster 8010")
-
bbworker.fail("nc -z bbmaster 9989")
-
bbworker.succeed("systemctl -l --no-pager status buildbot-worker")
-
bbworker.succeed("systemctl stop buildbot-worker")
+
with subtest("Stop buildbot worker"):
+
bbmaster.succeed("systemctl -l --no-pager status buildbot-master")
+
bbmaster.succeed("systemctl stop buildbot-master")
+
bbworker.fail("nc -z bbmaster 8010")
+
bbworker.fail("nc -z bbmaster 9989")
+
bbworker.succeed("systemctl -l --no-pager status buildbot-worker")
+
bbworker.succeed("systemctl stop buildbot-worker")
-
with subtest("Buildbot daemon mode works"):
-
bbmaster.succeed(
-
"buildbot create-master /tmp",
-
"mv -fv /tmp/master.cfg.sample /tmp/master.cfg",
-
"sed -i 's/8010/8011/' /tmp/master.cfg",
-
"buildbot start /tmp",
-
"nc -z bbmaster 8011",
-
)
-
bbworker.wait_until_succeeds("curl --fail -s --head http://bbmaster:8011")
-
bbmaster.wait_until_succeeds("buildbot stop /tmp")
-
bbworker.fail("nc -z bbmaster 8011")
-
'';
+
with subtest("Buildbot daemon mode works"):
+
bbmaster.succeed(
+
"buildbot create-master /tmp",
+
"mv -fv /tmp/master.cfg.sample /tmp/master.cfg",
+
"sed -i 's/8010/8011/' /tmp/master.cfg",
+
"buildbot start /tmp",
+
"nc -z bbmaster 8011",
+
)
+
bbworker.wait_until_succeeds("curl --fail -s --head http://bbmaster:8011")
+
bbmaster.wait_until_succeeds("buildbot stop /tmp")
+
bbworker.fail("nc -z bbmaster 8011")
+
'';
-
meta.maintainers = pkgs.lib.teams.buildbot.members;
-
}
-
)
+
meta.maintainers = pkgs.lib.teams.buildbot.members;
+
}