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