build_eval 0.0.14 → 0.0.15
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.
- checksums.yaml +8 -8
- data/lib/build_eval/monitor/server.rb +6 -3
- data/lib/build_eval/result/build_result.rb +15 -7
- data/lib/build_eval/result/status.rb +7 -6
- data/lib/build_eval/server/decorator.rb +5 -5
- data/lib/build_eval/server/jenkins.rb +2 -2
- data/lib/build_eval/server/team_city.rb +4 -3
- data/lib/build_eval/server/travis.rb +5 -3
- data/lib/build_eval/server/travis_pro.rb +6 -3
- data/lib/build_eval/travis/session/factory.rb +31 -0
- data/lib/build_eval/travis/session/pool.rb +44 -0
- data/lib/build_eval/travis/session/session.rb +18 -0
- data/lib/build_eval/travis/session.rb +14 -0
- data/lib/build_eval/travis.rb +9 -3
- data/lib/build_eval/version.rb +1 -1
- data/lib/build_eval.rb +4 -1
- data/spec/lib/build_eval/monitor/composite_spec.rb +1 -0
- data/spec/lib/build_eval/monitor/server_spec.rb +14 -6
- data/spec/lib/build_eval/result/build_result_spec.rb +42 -13
- data/spec/lib/build_eval/result/status_spec.rb +19 -6
- data/spec/lib/build_eval/server/decorator_spec.rb +21 -14
- data/spec/lib/build_eval/server/jenkins_integration_spec.rb +4 -3
- data/spec/lib/build_eval/server/jenkins_spec.rb +2 -1
- data/spec/lib/build_eval/server/team_city_integration_spec.rb +2 -1
- data/spec/lib/build_eval/server/team_city_spec.rb +2 -1
- data/spec/lib/build_eval/server/travis_pro_spec.rb +11 -6
- data/spec/lib/build_eval/server/travis_spec.rb +11 -6
- data/spec/lib/build_eval/travis/session/factory_spec.rb +85 -0
- data/spec/lib/build_eval/travis/session/pool_spec.rb +89 -0
- data/spec/lib/build_eval/travis/session/session_spec.rb +24 -0
- data/spec/lib/build_eval/travis/session_spec.rb +65 -0
- data/spec/lib/build_eval/travis_spec.rb +75 -50
- data/spec/lib/build_eval_smoke_spec.rb +4 -3
- metadata +18 -9
- data/lib/build_eval/travis/session_factory.rb +0 -38
- data/spec/lib/build_eval/travis/session_factory_spec.rb +0 -105
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.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Ueckerman
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-06-
|
13
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0.
|
77
|
+
version: '0.41'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - ~>
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '0.
|
84
|
+
version: '0.41'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rspec
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,14 +130,14 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - ~>
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: '0.
|
133
|
+
version: '0.6'
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
138
|
- - ~>
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version: '0.
|
140
|
+
version: '0.6'
|
141
141
|
description: Evaluates the effective status of continuous integration builds. Useful
|
142
142
|
for subsequent display on information radiators.
|
143
143
|
email: matthew.ueckerman@myob.com
|
@@ -163,7 +163,10 @@ files:
|
|
163
163
|
- ./lib/build_eval/server/travis.rb
|
164
164
|
- ./lib/build_eval/server/travis_pro.rb
|
165
165
|
- ./lib/build_eval/travis.rb
|
166
|
-
- ./lib/build_eval/travis/
|
166
|
+
- ./lib/build_eval/travis/session.rb
|
167
|
+
- ./lib/build_eval/travis/session/factory.rb
|
168
|
+
- ./lib/build_eval/travis/session/pool.rb
|
169
|
+
- ./lib/build_eval/travis/session/session.rb
|
167
170
|
- ./lib/build_eval/version.rb
|
168
171
|
- ./spec/lib/build_eval/error_spec.rb
|
169
172
|
- ./spec/lib/build_eval/http_shared_context.rb
|
@@ -185,7 +188,10 @@ files:
|
|
185
188
|
- ./spec/lib/build_eval/server/team_city_spec.rb
|
186
189
|
- ./spec/lib/build_eval/server/travis_pro_spec.rb
|
187
190
|
- ./spec/lib/build_eval/server/travis_spec.rb
|
188
|
-
- ./spec/lib/build_eval/travis/
|
191
|
+
- ./spec/lib/build_eval/travis/session/factory_spec.rb
|
192
|
+
- ./spec/lib/build_eval/travis/session/pool_spec.rb
|
193
|
+
- ./spec/lib/build_eval/travis/session/session_spec.rb
|
194
|
+
- ./spec/lib/build_eval/travis/session_spec.rb
|
189
195
|
- ./spec/lib/build_eval/travis_spec.rb
|
190
196
|
- ./spec/lib/build_eval_smoke_spec.rb
|
191
197
|
- ./spec/lib/build_eval_spec.rb
|
@@ -235,7 +241,10 @@ test_files:
|
|
235
241
|
- ./spec/lib/build_eval/server/team_city_spec.rb
|
236
242
|
- ./spec/lib/build_eval/server/travis_pro_spec.rb
|
237
243
|
- ./spec/lib/build_eval/server/travis_spec.rb
|
238
|
-
- ./spec/lib/build_eval/travis/
|
244
|
+
- ./spec/lib/build_eval/travis/session/factory_spec.rb
|
245
|
+
- ./spec/lib/build_eval/travis/session/pool_spec.rb
|
246
|
+
- ./spec/lib/build_eval/travis/session/session_spec.rb
|
247
|
+
- ./spec/lib/build_eval/travis/session_spec.rb
|
239
248
|
- ./spec/lib/build_eval/travis_spec.rb
|
240
249
|
- ./spec/lib/build_eval_smoke_spec.rb
|
241
250
|
- ./spec/lib/build_eval_spec.rb
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module BuildEval
|
2
|
-
module Travis
|
3
|
-
|
4
|
-
class SessionFactory
|
5
|
-
|
6
|
-
class << self
|
7
|
-
|
8
|
-
def create(github_token)
|
9
|
-
find_session(github_token) || create_session(github_token)
|
10
|
-
end
|
11
|
-
|
12
|
-
def clear_cache
|
13
|
-
@sessions = {}
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def find_session(github_token)
|
19
|
-
sessions[github_token].tap { |session| session.clear_cache if session }
|
20
|
-
end
|
21
|
-
|
22
|
-
def create_session(github_token)
|
23
|
-
travis_uri = github_token ? ::Travis::Client::PRO_URI : ::Travis::Client::ORG_URI
|
24
|
-
sessions[github_token] = ::Travis::Client::Session.new(uri: travis_uri, ssl: {}).tap do |session|
|
25
|
-
session.github_auth(github_token) if github_token
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def sessions
|
30
|
-
@sessions ||= {}
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
@@ -1,105 +0,0 @@
|
|
1
|
-
describe BuildEval::Travis::SessionFactory do
|
2
|
-
|
3
|
-
describe "::create" do
|
4
|
-
|
5
|
-
let(:github_token) { nil }
|
6
|
-
let(:travis_session) { instance_double(::Travis::Client::Session) }
|
7
|
-
|
8
|
-
subject { create_session }
|
9
|
-
|
10
|
-
before(:example) { allow(::Travis::Client::Session).to receive(:new).and_return(travis_session) }
|
11
|
-
after(:example) { described_class.clear_cache }
|
12
|
-
|
13
|
-
shared_examples_for "a call creating a new session" do
|
14
|
-
|
15
|
-
it "creates a Travis session with empty SSL settings to avoid using local security certificates" do
|
16
|
-
expect(::Travis::Client::Session).to receive(:new).with(hash_including(ssl: {}))
|
17
|
-
|
18
|
-
subject
|
19
|
-
end
|
20
|
-
|
21
|
-
it "returns the created session" do
|
22
|
-
expect(subject).to eql(travis_session)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
context "when a session for the GitHub token has not been retrieved previously" do
|
28
|
-
|
29
|
-
context "and a non-nil GitHub token is provided" do
|
30
|
-
|
31
|
-
let(:github_token) { "SOMEGITHUBAUTHTOKEN" }
|
32
|
-
|
33
|
-
before(:example) { allow(travis_session).to receive(:github_auth) }
|
34
|
-
|
35
|
-
it_behaves_like "a call creating a new session"
|
36
|
-
|
37
|
-
it "creates a Travis session connecting to the Travis Pro site" do
|
38
|
-
expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::PRO_URI))
|
39
|
-
|
40
|
-
subject
|
41
|
-
end
|
42
|
-
|
43
|
-
it "logs-in using the provided GitHub token via the session" do
|
44
|
-
expect(travis_session).to receive(:github_auth).with(github_token)
|
45
|
-
|
46
|
-
subject
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
context "and a nil GitHub token is provided" do
|
52
|
-
|
53
|
-
let(:github_token) { nil }
|
54
|
-
|
55
|
-
it_behaves_like "a call creating a new session"
|
56
|
-
|
57
|
-
it "creates a Travis session connecting to the Travis Org site" do
|
58
|
-
expect(::Travis::Client::Session).to receive(:new).with(hash_including(uri: ::Travis::Client::ORG_URI))
|
59
|
-
|
60
|
-
subject
|
61
|
-
end
|
62
|
-
|
63
|
-
it "does not log-in" do
|
64
|
-
expect(travis_session).to_not receive(:github_auth)
|
65
|
-
|
66
|
-
subject
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
context "when a session for the GitHub token has been retrieved previously" do
|
74
|
-
|
75
|
-
before(:example) do
|
76
|
-
create_session
|
77
|
-
|
78
|
-
allow(travis_session).to receive(:clear_cache)
|
79
|
-
end
|
80
|
-
|
81
|
-
it "does not create a new session" do
|
82
|
-
expect(::Travis::Client::Session).to_not receive(:new)
|
83
|
-
|
84
|
-
subject
|
85
|
-
end
|
86
|
-
|
87
|
-
it "clears the cache of the previously retrieved session to ensure no stale data is returned" do
|
88
|
-
expect(travis_session).to receive(:clear_cache)
|
89
|
-
|
90
|
-
subject
|
91
|
-
end
|
92
|
-
|
93
|
-
it "returns the previously retrieved session" do
|
94
|
-
expect(subject).to eql(travis_session)
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
def create_session
|
100
|
-
described_class.create(github_token)
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
end
|