nixosTests.sourcehut: split tests belonging to different services

Changed files
+61 -19
nixos
+1 -1
nixos/tests/all-tests.nix
···
solanum = handleTest ./solanum.nix {};
sonarr = handleTest ./sonarr.nix {};
sonic-server = handleTest ./sonic-server.nix {};
-
sourcehut = handleTest ./sourcehut/sourcehut.nix {};
+
sourcehut = handleTest ./sourcehut {};
spacecookie = handleTest ./spacecookie.nix {};
spark = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./spark {};
sqlite3-to-mysql = handleTest ./sqlite3-to-mysql.nix {};
+54
nixos/tests/sourcehut/builds.nix
···
+
import ../make-test-python.nix ({ pkgs, lib, ... }:
+
let
+
domain = "sourcehut.localdomain";
+
in
+
{
+
name = "sourcehut";
+
+
meta.maintainers = with pkgs.lib.maintainers; [ tomberek nessdoor ];
+
+
nodes.machine = { config, pkgs, nodes, ... }: {
+
imports = [
+
./nodes/common.nix
+
];
+
+
networking.domain = domain;
+
networking.extraHosts = ''
+
${config.networking.primaryIPAddress} builds.${domain}
+
${config.networking.primaryIPAddress} meta.${domain}
+
'';
+
+
services.sourcehut = {
+
builds = {
+
enable = true;
+
# FIXME: see why it does not seem to activate fully.
+
#enableWorker = true;
+
images = { };
+
};
+
+
settings."builds.sr.ht" = {
+
oauth-client-secret = pkgs.writeText "buildsrht-oauth-client-secret" "2260e9c4d9b8dcedcef642860e0504bc";
+
oauth-client-id = "299db9f9c2013170";
+
};
+
};
+
};
+
+
testScript = ''
+
start_all()
+
machine.wait_for_unit("multi-user.target")
+
+
with subtest("Check whether meta comes up"):
+
machine.wait_for_unit("metasrht-api.service")
+
machine.wait_for_unit("metasrht.service")
+
machine.wait_for_unit("metasrht-webhooks.service")
+
machine.wait_for_open_port(5000)
+
machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}")
+
machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}")
+
+
with subtest("Check whether builds comes up"):
+
machine.wait_for_unit("buildsrht.service")
+
machine.wait_for_open_port(5002)
+
machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}")
+
#machine.wait_for_unit("buildsrht-worker.service")
+
'';
+
})
+6
nixos/tests/sourcehut/default.nix
···
+
{ system, pkgs, ... }:
+
+
{
+
git = import ./git.nix { inherit system pkgs; };
+
builds = import ./builds.nix { inherit system pkgs; };
+
}
-18
nixos/tests/sourcehut/sourcehut.nix nixos/tests/sourcehut/git.nix
···
networking.domain = domain;
networking.extraHosts = ''
-
${config.networking.primaryIPAddress} builds.${domain}
${config.networking.primaryIPAddress} git.${domain}
${config.networking.primaryIPAddress} meta.${domain}
'';
services.sourcehut = {
-
builds = {
-
enable = true;
-
# FIXME: see why it does not seem to activate fully.
-
#enableWorker = true;
-
images = { };
-
};
git.enable = true;
-
-
settings."builds.sr.ht" = {
-
oauth-client-secret = pkgs.writeText "buildsrht-oauth-client-secret" "2260e9c4d9b8dcedcef642860e0504bc";
-
oauth-client-id = "299db9f9c2013170";
-
};
settings."git.sr.ht" = {
oauth-client-secret = pkgs.writeText "gitsrht-oauth-client-secret" "3597288dc2c716e567db5384f493b09d";
oauth-client-id = "d07cb713d920702e";
···
with subtest("Verify that the repo is downloadable and its contents match the original"):
machine.succeed("curl https://git.${domain}/~${userName}/test/archive/v0.1.tar.gz | tar -xz")
machine.succeed("diff test-v0.1/hello.txt test/hello.txt")
-
-
with subtest("Check whether builds comes up"):
-
machine.wait_for_unit("buildsrht.service")
-
machine.wait_for_open_port(5002)
-
machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}")
-
#machine.wait_for_unit("buildsrht-worker.service")
'';
})