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 ({ pkgs, ...} : {
13 name = "gocd-agent";
14 meta = with pkgs.lib.maintainers; {
15 maintainers = [ grahamc swarren83 ];
16
17 # gocd agent needs to register with the autoregister key created on first server startup,
18 # but NixOS module doesn't seem to allow to pass during runtime currently
19 broken = true;
20 };
21
22 nodes = {
23 agent =
24 { ... }:
25 {
26 virtualisation.memorySize = 2046;
27 services.gocd-agent = {
28 enable = true;
29 };
30 services.gocd-server = {
31 enable = true;
32 };
33 };
34 };
35
36 testScript = ''
37 start_all()
38 agent.wait_for_unit("gocd-server")
39 agent.wait_for_open_port(8153)
40 agent.wait_for_unit("gocd-agent")
41 agent.wait_until_succeeds(
42 "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid"
43 )
44 agent.succeed(
45 "curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep Idle"
46 )
47 '';
48})