build_eval 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/build_eval/error.rb +11 -0
  3. data/lib/build_eval/http.rb +17 -3
  4. data/lib/build_eval/result/build_result.rb +2 -2
  5. data/lib/build_eval/result/status.rb +5 -4
  6. data/lib/build_eval/server/cruise_control_response.rb +22 -0
  7. data/lib/build_eval/server/decorator.rb +1 -1
  8. data/lib/build_eval/server/invalid_selector_error.rb +13 -0
  9. data/lib/build_eval/server/jenkins.rb +23 -0
  10. data/lib/build_eval/server/team_city.rb +2 -5
  11. data/lib/build_eval/server/travis.rb +3 -6
  12. data/lib/build_eval/version.rb +1 -1
  13. data/lib/build_eval.rb +7 -1
  14. data/spec/lib/build_eval/error_spec.rb +21 -0
  15. data/spec/lib/build_eval/http_shared_context.rb +7 -0
  16. data/spec/lib/build_eval/http_spec.rb +25 -5
  17. data/spec/lib/build_eval/result/build_result_spec.rb +4 -4
  18. data/spec/lib/build_eval/result/status_spec.rb +30 -11
  19. data/spec/lib/build_eval/server/cruise_control_response_spec.rb +115 -0
  20. data/spec/lib/build_eval/server/decorator_spec.rb +6 -6
  21. data/spec/lib/build_eval/server/invalid_selector_error_spec.rb +27 -0
  22. data/spec/lib/build_eval/server/jenkins_integration_spec.rb +52 -0
  23. data/spec/lib/build_eval/server/jenkins_spec.rb +70 -0
  24. data/spec/lib/build_eval/server/server_shared_examples.rb +15 -0
  25. data/spec/lib/build_eval/server/team_city_integration_spec.rb +85 -0
  26. data/spec/lib/build_eval/server/team_city_spec.rb +24 -88
  27. data/spec/lib/build_eval/server/travis_integration_spec.rb +53 -0
  28. data/spec/lib/build_eval/server/travis_spec.rb +33 -55
  29. data/spec/lib/build_eval_smoke_spec.rb +25 -0
  30. data/spec/spec_helper.rb +14 -6
  31. metadata +42 -4
@@ -0,0 +1,70 @@
1
+ describe BuildEval::Server::Jenkins do
2
+ include_context "stubbed http interactions"
3
+
4
+ let(:uri) { "https://some.jenkins.server" }
5
+ let(:constructor_args) { { uri: uri } }
6
+
7
+ let(:jenkins_server) { described_class.new(constructor_args) }
8
+
9
+ it_behaves_like "a continuous integration server" do
10
+
11
+ let(:server) { jenkins_server }
12
+
13
+ end
14
+
15
+ describe "#build_result" do
16
+
17
+ let(:build_name) { "some_build_name" }
18
+ let(:response) { instance_double(Net::HTTPResponse) }
19
+ let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
20
+ let(:cruise_control_response) do
21
+ instance_double(BuildEval::Server::CruiseControlResponse, parse_result: build_result)
22
+ end
23
+
24
+ subject { jenkins_server.build_result(build_name) }
25
+
26
+ before(:example) do
27
+ allow(http).to receive(:get).and_return(response)
28
+ allow(BuildEval::Server::CruiseControlResponse).to receive(:new).and_return(cruise_control_response)
29
+ allow(cruise_control_response).to receive(:parse_result).and_return(build_result)
30
+ end
31
+
32
+ it "issues a GET request for the build" do
33
+ expect(http).to receive(:get).with("#{uri}/cc.xml")
34
+
35
+ subject
36
+ end
37
+
38
+ it "creates a Cruise Control response containing the GET request response" do
39
+ expect(BuildEval::Server::CruiseControlResponse).to receive(:new).with(response)
40
+
41
+ subject
42
+ end
43
+
44
+ it "parses the Cruise Control response to return the project with a matching build name" do
45
+ expect(cruise_control_response).to receive(:parse_result).with(a_string_including(build_name))
46
+
47
+ subject
48
+ end
49
+
50
+ it "returns the parsed build result" do
51
+ expect(subject).to eql(build_result)
52
+ end
53
+
54
+ end
55
+
56
+ describe "#to_s" do
57
+
58
+ subject { jenkins_server.to_s }
59
+
60
+ it "returns a string indicating it is a Jenkins server" do
61
+ expect(subject).to include("Jenkins server")
62
+ end
63
+
64
+ it "returns a string containing the username" do
65
+ expect(subject).to include(uri)
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,15 @@
1
+ shared_examples_for "a continuous integration server" do
2
+
3
+ describe "constructor" do
4
+
5
+ subject { server }
6
+
7
+ it "creates a http object with any provided http configuration options" do
8
+ expect(BuildEval::Http).to receive(:new).with(constructor_args)
9
+
10
+ subject
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -0,0 +1,85 @@
1
+ describe BuildEval::Server::TeamCity, "integrating with a response parser", integration: true do
2
+ include_context "stubbed http interactions"
3
+
4
+ let(:uri) { "https://some.teamcity.server" }
5
+
6
+ let(:team_city_server) { described_class.new(uri: uri) }
7
+
8
+ describe "#build_result" do
9
+
10
+ let(:build_name) { "some_build_name" }
11
+ let(:response_message) { nil }
12
+ let(:response_body) { nil }
13
+ let(:response) { instance_double(Net::HTTPResponse, message: response_message, body: response_body) }
14
+
15
+ subject { team_city_server.build_result(build_name) }
16
+
17
+ before(:example) { allow(http).to receive(:get).and_return(response) }
18
+
19
+ context "when the server responds with build results" do
20
+
21
+ let(:latest_build_status) { "FAILED" }
22
+ let(:response_message) { "OK" }
23
+ let(:response_body) do
24
+ <<-RESPONSE
25
+ <builds count="3" href="/httpAuth/app/rest/buildTypes/#{build_name}/builds/" nextHref="/httpAuth/app/rest/buildTypes/#{build_name}/builds/?count=3&start=3">
26
+ <build id="87735" buildTypeId="#{build_name}" number="2062" status="#{latest_build_status}" state="finished" href="/httpAuth/app/rest/builds/id:87735" webUrl="#{uri}/viewLog.html?buildId=87735&buildTypeId=#{build_name}"/>
27
+ <build id="87723" buildTypeId="#{build_name}" number="2061" status="SUCCESS" state="finished" href="/httpAuth/app/rest/builds/id:87723" webUrl="#{uri}/viewLog.html?buildId=87723&buildTypeId=#{build_name}"/>
28
+ <build id="87658" buildTypeId="#{build_name}" number="2060" status="SUCCESS" state="finished" href="/httpAuth/app/rest/builds/id:87658" webUrl="#{uri}/viewLog.html?buildId=87658&buildTypeId=#{build_name}"/>
29
+ </builds>
30
+ RESPONSE
31
+ end
32
+
33
+ it "creates a build result containing the build name" do
34
+ expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
35
+
36
+ subject
37
+ end
38
+
39
+ it "creates a build result containing the latest build status" do
40
+ expect(BuildEval::Result::BuildResult).to(
41
+ receive(:create).with(hash_including(status_name: latest_build_status))
42
+ )
43
+
44
+ subject
45
+ end
46
+
47
+ it "returns the created result" do
48
+ build_result = instance_double(BuildEval::Result::BuildResult)
49
+ allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
50
+
51
+ expect(subject).to eql(build_result)
52
+ end
53
+
54
+ end
55
+
56
+ context "when the server authentication request fails" do
57
+
58
+ let(:response_message) { "Unauthorized" }
59
+ let(:response_body) { "Incorrect username or password" }
60
+
61
+ it "raises an error" do
62
+ expect { subject }.to raise_error(/Unauthorized/)
63
+ end
64
+
65
+ end
66
+
67
+ context "when the build is not found" do
68
+
69
+ let(:response_message) { "Not Found" }
70
+ let(:response_body) do
71
+ <<-BODY
72
+ Error has occurred during request processing (Not Found).
73
+ Error: jetbrains.buildServer.server.rest.errors.NotFoundException: No build type nor template is found by id '#{build_name}'.
74
+ BODY
75
+ end
76
+
77
+ it "raises an error" do
78
+ expect { subject }.to raise_error(/Not Found/)
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+
85
+ end
@@ -1,110 +1,46 @@
1
1
  describe BuildEval::Server::TeamCity do
2
+ include_context "stubbed http interactions"
2
3
 
3
- let(:uri) { "https://some.teamcity.server" }
4
- let(:username) { "some_username" }
5
- let(:password) { "some_password" }
4
+ let(:uri) { "https://some.teamcity.server" }
5
+ let(:username) { "some_username" }
6
+ let(:password) { "some_password" }
7
+ let(:constructor_args) { { uri: uri, username: username, password: password } }
6
8
 
7
- let(:team_city) { described_class.new(uri: uri, username: username, password: password) }
9
+ let(:team_city_server) { described_class.new(constructor_args) }
8
10
 
9
- describe "#build_result" do
10
-
11
- let(:build_name) { "some_build_name" }
12
- let(:response_code) { nil }
13
- let(:response_message) { nil }
14
- let(:response_body) { nil }
15
- let(:response) do
16
- instance_double(Net::HTTPResponse, code: response_code, message: response_message, body: response_body)
17
- end
18
-
19
- subject { team_city.build_result(build_name) }
20
-
21
- before(:example) { allow(BuildEval::Http).to receive(:get).and_return(response) }
22
-
23
- it "issues a get request for the build" do
24
- expected_uri = "#{uri}/httpAuth/app/rest/buildTypes/id:#{build_name}/builds"
25
- expect(BuildEval::Http).to receive(:get).with(expected_uri, anything)
26
-
27
- subject rescue Exception
28
- end
29
-
30
- it "issues a get request with the provided basic authentication credentials" do
31
- expect(BuildEval::Http).to receive(:get).with(anything, username: username, password: password)
32
-
33
- subject rescue Exception
34
- end
35
-
36
- context "when the server responds with build results" do
11
+ it_behaves_like "a continuous integration server" do
37
12
 
38
- let(:response_code) { "200" }
39
- let(:response_message) { "OK" }
40
- let(:latest_build_status) { "FAILED" }
41
- let(:response_body) do
42
- <<-RESPONSE
43
- <builds count="3" href="/httpAuth/app/rest/buildTypes/#{build_name}/builds/" nextHref="/httpAuth/app/rest/buildTypes/#{build_name}/builds/?count=3&start=3">
44
- <build id="87735" buildTypeId="#{build_name}" number="2062" status="#{latest_build_status}" state="finished" href="/httpAuth/app/rest/builds/id:87735" webUrl="#{uri}/viewLog.html?buildId=87735&buildTypeId=#{build_name}"/>
45
- <build id="87723" buildTypeId="#{build_name}" number="2061" status="SUCCESS" state="finished" href="/httpAuth/app/rest/builds/id:87723" webUrl="#{uri}/viewLog.html?buildId=87723&buildTypeId=#{build_name}"/>
46
- <build id="87658" buildTypeId="#{build_name}" number="2060" status="SUCCESS" state="finished" href="/httpAuth/app/rest/builds/id:87658" webUrl="#{uri}/viewLog.html?buildId=87658&buildTypeId=#{build_name}"/>
47
- </builds>
48
- RESPONSE
49
- end
13
+ let(:server) { team_city_server }
50
14
 
51
- it "creates a build result containing the build name" do
52
- expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
53
-
54
- subject
55
- end
56
-
57
- it "creates a build result containing the latest build status" do
58
- expect(BuildEval::Result::BuildResult).to(
59
- receive(:create).with(hash_including(status_name: latest_build_status))
60
- )
61
-
62
- subject
63
- end
64
-
65
- it "returns the created result" do
66
- build_result = instance_double(BuildEval::Result::BuildResult)
67
- allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
68
-
69
- expect(subject).to eql(build_result)
70
- end
71
-
72
- end
73
-
74
- context "when the server authentication request fails" do
75
-
76
- let(:response_code) { "401" }
77
- let(:response_message) { "Unauthorized" }
78
- let(:response_body) { "Incorrect username or password" }
15
+ end
79
16
 
80
- it "raises an error" do
81
- expect { subject }.to raise_error(/Unauthorized/)
82
- end
17
+ describe "#build_result" do
83
18
 
19
+ let(:build_name) { "some_build_name" }
20
+ let(:response_body) do
21
+ <<-RESPONSE
22
+ <builds count="3" href="/httpAuth/app/rest/buildTypes/#{build_name}/builds/" nextHref="/httpAuth/app/rest/buildTypes/#{build_name}/builds/?count=3&start=3">
23
+ <build id="87735" buildTypeId="#{build_name}" number="2062" status="SUCCESS" state="finished" href="/httpAuth/app/rest/builds/id:87735" webUrl="#{uri}/viewLog.html?buildId=87735&buildTypeId=#{build_name}"/>
24
+ </builds>
25
+ RESPONSE
84
26
  end
27
+ let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
85
28
 
86
- context "when the build is not found" do
29
+ subject { team_city_server.build_result(build_name) }
87
30
 
88
- let(:response_code) { "404" }
89
- let(:response_message) { "Not Found" }
90
- let(:response_body) do
91
- <<-BODY
92
- Error has occurred during request processing (Not Found).
93
- Error: jetbrains.buildServer.server.rest.errors.NotFoundException: No build type nor template is found by id '#{build_name}'.
94
- BODY
95
- end
31
+ before(:example) { allow(http).to receive(:get).and_return(response) }
96
32
 
97
- it "raises an error" do
98
- expect { subject }.to raise_error(/Not Found/)
99
- end
33
+ it "issues a GET request for the build" do
34
+ expect(http).to receive(:get).with("#{uri}/httpAuth/app/rest/buildTypes/id:#{build_name}/builds")
100
35
 
36
+ subject
101
37
  end
102
38
 
103
39
  end
104
40
 
105
41
  describe "#to_s" do
106
42
 
107
- subject { team_city.to_s }
43
+ subject { team_city_server.to_s }
108
44
 
109
45
  it "returns a string indicating it is a TeamCity server" do
110
46
  expect(subject).to include("TeamCity")
@@ -0,0 +1,53 @@
1
+ describe BuildEval::Server::Travis, "integrating with a response parser", integration: true do
2
+ include_context "stubbed http interactions"
3
+
4
+ let(:username) { "some_username" }
5
+
6
+ let(:travis) { described_class.new(username: username) }
7
+
8
+ describe "#build_result" do
9
+
10
+ let(:build_name) { "some_build_name" }
11
+ let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
12
+
13
+ subject { travis.build_result(build_name) }
14
+
15
+ before(:example) { allow(http).to receive(:get).and_return(response) }
16
+
17
+ context "when the server responds successfully with build results" do
18
+
19
+ let(:latest_build_status) { "Success" }
20
+ let(:response_body) do
21
+ <<-RESPONSE
22
+ <Projects>
23
+ <Project name="#{username}/#{build_name}" activity="Sleeping" lastBuildStatus="#{latest_build_status}" lastBuildLabel="2" lastBuildTime="2015-08-13T08:31:27.000+0000" webUrl="https://travis-ci.org/#{username}/#{build_name}" />
24
+ </Projects>
25
+ RESPONSE
26
+ end
27
+
28
+ it "creates a build result containing the build name" do
29
+ expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
30
+
31
+ subject
32
+ end
33
+
34
+ it "creates a build result containing the latest build status" do
35
+ expect(BuildEval::Result::BuildResult).to(
36
+ receive(:create).with(hash_including(status_name: latest_build_status))
37
+ )
38
+
39
+ subject
40
+ end
41
+
42
+ it "returns the created result" do
43
+ build_result = instance_double(BuildEval::Result::BuildResult)
44
+ allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
45
+
46
+ expect(subject).to eql(build_result)
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ end
@@ -1,83 +1,61 @@
1
1
  describe BuildEval::Server::Travis do
2
+ include_context "stubbed http interactions"
2
3
 
3
- let(:username) { "some_username" }
4
+ let(:username) { "some_username" }
5
+ let(:constructor_args) { { username: username } }
4
6
 
5
- let(:travis) { described_class.new(username: username) }
7
+ let(:travis_server) { described_class.new(constructor_args) }
6
8
 
7
- describe "#build_result" do
8
-
9
- let(:build_name) { "some_build_name" }
10
- let(:response_code) { nil }
11
- let(:response_message) { nil }
12
- let(:response_body) { nil }
13
- let(:response) do
14
- instance_double(Net::HTTPResponse, code: response_code, message: response_message, body: response_body)
15
- end
9
+ it_behaves_like "a continuous integration server" do
16
10
 
17
- subject { travis.build_result(build_name) }
11
+ let(:server) { travis_server }
18
12
 
19
- before(:example) { allow(BuildEval::Http).to receive(:get).and_return(response) }
13
+ end
20
14
 
21
- it "issues a get request for the build" do
22
- expected_uri = "https://api.travis-ci.org/repositories/#{username}/#{build_name}/cc.xml"
23
- expect(BuildEval::Http).to receive(:get).with(expected_uri)
15
+ describe "#build_result" do
24
16
 
25
- subject rescue Exception
17
+ let(:build_name) { "some_build_name" }
18
+ let(:response) { instance_double(Net::HTTPResponse) }
19
+ let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
20
+ let(:cruise_control_response) do
21
+ instance_double(BuildEval::Server::CruiseControlResponse, parse_result: build_result)
26
22
  end
27
23
 
28
- context "when the server responds with build results" do
29
-
30
- let(:response_code) { "200" }
31
- let(:response_message) { "OK" }
32
- let(:latest_build_status) { "Success" }
33
- let(:response_body) do
34
- <<-RESPONSE
35
- <Projects>
36
- <Project name="#{username}/#{build_name}" activity="Sleeping" lastBuildStatus="#{latest_build_status}" lastBuildLabel="2" lastBuildTime="2015-08-13T08:31:27.000+0000" webUrl="https://travis-ci.org/#{username}/#{build_name}" />
37
- </Projects>
38
- RESPONSE
39
- end
24
+ subject { travis_server.build_result(build_name) }
40
25
 
41
- it "creates a build result containing the build name" do
42
- expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
43
-
44
- subject
45
- end
46
-
47
- it "creates a build result containing the latest build status" do
48
- expect(BuildEval::Result::BuildResult).to(
49
- receive(:create).with(hash_including(status_name: latest_build_status))
50
- )
26
+ before(:example) do
27
+ allow(http).to receive(:get).and_return(response)
28
+ allow(BuildEval::Server::CruiseControlResponse).to receive(:new).and_return(cruise_control_response)
29
+ allow(cruise_control_response).to receive(:parse_result).and_return(build_result)
30
+ end
51
31
 
52
- subject
53
- end
32
+ it "issues a GET request for the build" do
33
+ expect(http).to receive(:get).with("https://api.travis-ci.org/repositories/#{username}/#{build_name}/cc.xml")
54
34
 
55
- it "returns the created result" do
56
- build_result = instance_double(BuildEval::Result::BuildResult)
57
- allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
35
+ subject rescue Exception
36
+ end
58
37
 
59
- expect(subject).to eql(build_result)
60
- end
38
+ it "creates a Cruise Control response containing the GET request response" do
39
+ expect(BuildEval::Server::CruiseControlResponse).to receive(:new).with(response)
61
40
 
41
+ subject
62
42
  end
63
43
 
64
- context "when the build is not found" do
65
-
66
- let(:response_code) { "404" }
67
- let(:response_message) { "Not Found" }
68
- let(:response_body) { { "file" => "not found" }.to_json }
44
+ it "parses the Cruise Control response to return the project" do
45
+ expect(cruise_control_response).to receive(:parse_result).with("//Project")
69
46
 
70
- it "raises an error" do
71
- expect { subject }.to raise_error(/Not Found/)
72
- end
47
+ subject
48
+ end
73
49
 
50
+ it "returns the parsed build result" do
51
+ expect(subject).to eql(build_result)
74
52
  end
75
53
 
76
54
  end
77
55
 
78
56
  describe "#to_s" do
79
57
 
80
- subject { travis.to_s }
58
+ subject { travis_server.to_s }
81
59
 
82
60
  it "returns a string indicating it uses the Travis CI service" do
83
61
  expect(subject).to include("Travis CI")
@@ -0,0 +1,25 @@
1
+ describe BuildEval, "integrating with a real CI server", smoke: true do
2
+
3
+ let(:server) { BuildEval.server(type: :Travis, username: "MYOB-Technology") }
4
+
5
+ let(:monitor) { server.monitor("build_eval") }
6
+
7
+ describe "the evaluated results from a build monitor for the server" do
8
+
9
+ let(:tolerated_statuses) do
10
+ [ BuildEval::Result::Status::SUCCESS, BuildEval::Result::Status::UNKNOWN, BuildEval::Result::Status::FAILURE ]
11
+ end
12
+
13
+ subject { monitor.evaluate }
14
+
15
+ it "indicate the builds status" do
16
+ expect(tolerated_statuses).to include(subject.status)
17
+ end
18
+
19
+ it "describe the build and it's status" do
20
+ expect(subject.to_s).to match(/build_eval: (#{tolerated_statuses.map(&:to_s).join("|")})/)
21
+ end
22
+
23
+ end
24
+
25
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,21 @@
1
1
  require 'bundler'
2
2
  Bundler.require(:development)
3
3
 
4
- SimpleCov.start do
5
- coverage_dir "tmp/coverage"
4
+ if ENV["coverage"]
5
+ CodeClimate::TestReporter.start
6
6
 
7
- add_filter "/spec/"
7
+ SimpleCov.start do
8
+ coverage_dir "tmp/coverage"
8
9
 
9
- minimum_coverage 100
10
- refuse_coverage_drop
11
- end if ENV["coverage"]
10
+ add_filter "/spec/"
11
+
12
+ minimum_coverage 100
13
+ refuse_coverage_drop
14
+ end
15
+ end
12
16
 
13
17
  require_relative '../lib/build_eval'
18
+
19
+ %w{ shared_examples shared_context }.each do |file_type|
20
+ Dir[::File.expand_path("../**/*_#{file_type}.rb", __FILE__)].each { |file| require file }
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build_eval
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Ueckerman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-17 00:00:00.000000000 Z
12
+ date: 2015-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -73,14 +73,14 @@ dependencies:
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '3.3'
76
+ version: '3.4'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '3.3'
83
+ version: '3.4'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: fakeweb
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +109,20 @@ dependencies:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0.10'
112
+ - !ruby/object:Gem::Dependency
113
+ name: codeclimate-test-reporter
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.4'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.4'
112
126
  description: Evaluates the effective status of continuous integration builds. Useful
113
127
  for subsequent display on information radiators.
114
128
  email: matthew.ueckerman@myob.com
@@ -117,6 +131,7 @@ extensions: []
117
131
  extra_rdoc_files: []
118
132
  files:
119
133
  - "./lib/build_eval.rb"
134
+ - "./lib/build_eval/error.rb"
120
135
  - "./lib/build_eval/http.rb"
121
136
  - "./lib/build_eval/monitor/base.rb"
122
137
  - "./lib/build_eval/monitor/composite.rb"
@@ -125,10 +140,15 @@ files:
125
140
  - "./lib/build_eval/result/composite_result.rb"
126
141
  - "./lib/build_eval/result/server_result.rb"
127
142
  - "./lib/build_eval/result/status.rb"
143
+ - "./lib/build_eval/server/cruise_control_response.rb"
128
144
  - "./lib/build_eval/server/decorator.rb"
145
+ - "./lib/build_eval/server/invalid_selector_error.rb"
146
+ - "./lib/build_eval/server/jenkins.rb"
129
147
  - "./lib/build_eval/server/team_city.rb"
130
148
  - "./lib/build_eval/server/travis.rb"
131
149
  - "./lib/build_eval/version.rb"
150
+ - "./spec/lib/build_eval/error_spec.rb"
151
+ - "./spec/lib/build_eval/http_shared_context.rb"
132
152
  - "./spec/lib/build_eval/http_spec.rb"
133
153
  - "./spec/lib/build_eval/monitor/base_spec.rb"
134
154
  - "./spec/lib/build_eval/monitor/composite_spec.rb"
@@ -137,9 +157,17 @@ files:
137
157
  - "./spec/lib/build_eval/result/composite_result_spec.rb"
138
158
  - "./spec/lib/build_eval/result/server_result_spec.rb"
139
159
  - "./spec/lib/build_eval/result/status_spec.rb"
160
+ - "./spec/lib/build_eval/server/cruise_control_response_spec.rb"
140
161
  - "./spec/lib/build_eval/server/decorator_spec.rb"
162
+ - "./spec/lib/build_eval/server/invalid_selector_error_spec.rb"
163
+ - "./spec/lib/build_eval/server/jenkins_integration_spec.rb"
164
+ - "./spec/lib/build_eval/server/jenkins_spec.rb"
165
+ - "./spec/lib/build_eval/server/server_shared_examples.rb"
166
+ - "./spec/lib/build_eval/server/team_city_integration_spec.rb"
141
167
  - "./spec/lib/build_eval/server/team_city_spec.rb"
168
+ - "./spec/lib/build_eval/server/travis_integration_spec.rb"
142
169
  - "./spec/lib/build_eval/server/travis_spec.rb"
170
+ - "./spec/lib/build_eval_smoke_spec.rb"
143
171
  - "./spec/lib/build_eval_spec.rb"
144
172
  - "./spec/spec_helper.rb"
145
173
  homepage: http://github.com/MYOB-Technology/build_eval
@@ -167,6 +195,8 @@ signing_key:
167
195
  specification_version: 4
168
196
  summary: Evaluates the effective status of continuous integration builds
169
197
  test_files:
198
+ - "./spec/lib/build_eval/error_spec.rb"
199
+ - "./spec/lib/build_eval/http_shared_context.rb"
170
200
  - "./spec/lib/build_eval/http_spec.rb"
171
201
  - "./spec/lib/build_eval/monitor/base_spec.rb"
172
202
  - "./spec/lib/build_eval/monitor/composite_spec.rb"
@@ -175,8 +205,16 @@ test_files:
175
205
  - "./spec/lib/build_eval/result/composite_result_spec.rb"
176
206
  - "./spec/lib/build_eval/result/server_result_spec.rb"
177
207
  - "./spec/lib/build_eval/result/status_spec.rb"
208
+ - "./spec/lib/build_eval/server/cruise_control_response_spec.rb"
178
209
  - "./spec/lib/build_eval/server/decorator_spec.rb"
210
+ - "./spec/lib/build_eval/server/invalid_selector_error_spec.rb"
211
+ - "./spec/lib/build_eval/server/jenkins_integration_spec.rb"
212
+ - "./spec/lib/build_eval/server/jenkins_spec.rb"
213
+ - "./spec/lib/build_eval/server/server_shared_examples.rb"
214
+ - "./spec/lib/build_eval/server/team_city_integration_spec.rb"
179
215
  - "./spec/lib/build_eval/server/team_city_spec.rb"
216
+ - "./spec/lib/build_eval/server/travis_integration_spec.rb"
180
217
  - "./spec/lib/build_eval/server/travis_spec.rb"
218
+ - "./spec/lib/build_eval_smoke_spec.rb"
181
219
  - "./spec/lib/build_eval_spec.rb"
182
220
  - "./spec/spec_helper.rb"