1# verifies:
2# 1. GoCD agent starts
3# 2. GoCD agent responds
4# 3. GoCD agent is available on GoCD server using GoCD API
5# 3.1. https://api.go.cd/current/#get-all-agents
6
7let
8 serverUrl = "localhost:8153/go/api/agents";
9 header = "Accept: application/vnd.go.cd.v2+json";
10in
11
12import ./make-test-python.nix (
13 { pkgs, ... }:
14 {
15 name = "gocd-agent";
16 meta = with pkgs.lib.maintainers; {
17 maintainers = [
18 grahamc
19 swarren83
20 ];
21
22 # gocd agent needs to register with the autoregister key created on first server startup,
23 # but NixOS module doesn't seem to allow to pass during runtime currently
24 broken = true;
25 };
26
27 nodes = {
28 agent =
29 { ... }:
30 {
31 virtualisation.memorySize = 2046;
32 services.gocd-agent = {
33 enable = true;
34 };
35 services.gocd-server = {
36 enable = true;
37 };
38 };
39 };
40
41 testScript = ''
42 start_all()
43 agent.wait_for_unit("gocd-server")
44 agent.wait_for_open_port(8153)
45 agent.wait_for_unit("gocd-agent")
46 agent.wait_until_succeeds(
47 "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid"
48 )
49 agent.succeed(
50 "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep Idle"
51 )
52 '';
53 }
54)