1import ./make-test-python.nix ({ pkgs, ... }:
2
3let
4 lfs = pkgs.fetchurl {
5 url = "https://gerrit-ci.gerritforge.com/job/plugin-lfs-bazel-master/90/artifact/bazel-bin/plugins/lfs/lfs.jar";
6 sha256 = "023b0kd8djm3cn1lf1xl67yv3j12yl8bxccn42lkfmwxjwjfqw6h";
7 };
8
9in {
10 name = "gerrit";
11
12 meta = with pkgs.lib.maintainers; {
13 maintainers = [ flokli zimbatm ];
14 };
15
16 nodes = {
17 server =
18 { config, pkgs, ... }: {
19 networking.firewall.allowedTCPPorts = [ 80 2222 ];
20
21 virtualisation.memorySize = 1024;
22
23 services.gerrit = {
24 enable = true;
25 serverId = "aa76c84b-50b0-4711-a0a0-1ee30e45bbd0";
26 listenAddress = "[::]:80";
27 jvmHeapLimit = "1g";
28
29 plugins = [ lfs ];
30 builtinPlugins = [ "hooks" "webhooks" ];
31 settings = {
32 gerrit.canonicalWebUrl = "http://server";
33 lfs.plugin = "lfs";
34 plugins.allowRemoteAdmin = true;
35 sshd.listenAddress = "[::]:2222";
36 sshd.advertisedAddress = "[::]:2222";
37 };
38 };
39 };
40
41 client =
42 { ... }: {
43 };
44 };
45
46 testScript = ''
47 start_all()
48 server.wait_for_unit("gerrit.service")
49 server.wait_for_open_port(80)
50 client.succeed("curl http://server")
51
52 server.wait_for_open_port(2222)
53 client.succeed("nc -z server 2222")
54 '';
55})