circle-cli 0.1.1 → 0.1.2
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 +4 -4
- data/README.md +1 -1
- data/circle-cli.gemspec +12 -12
- data/lib/circle/cli/app.rb +33 -26
- data/lib/circle/cli/model.rb +2 -0
- data/lib/circle/cli/project.rb +5 -11
- data/lib/circle/cli/repo.rb +8 -9
- data/lib/circle/cli/version.rb +1 -1
- data/lib/circle/cli/watcher.rb +41 -0
- data/spec/cassettes/get.yml +91 -56
- data/spec/cassettes/recent_builds.yml +1552 -52
- data/spec/cassettes/recent_builds_branch.yml +206 -54
- data/spec/cassettes/tests.yml +100 -41
- data/spec/circle/cli/build_spec.rb +9 -9
- data/spec/circle/cli/project_spec.rb +5 -4
- data/spec/circle/cli/repo_spec.rb +9 -13
- data/spec/circle/cli/watcher_spec.rb +48 -0
- metadata +94 -25
@@ -5,12 +5,12 @@ require 'circle/cli/project'
|
|
5
5
|
module Circle::CLI
|
6
6
|
RSpec.describe Build do
|
7
7
|
let(:repo) {
|
8
|
-
instance_double
|
9
|
-
project: '
|
8
|
+
instance_double Repo, {
|
9
|
+
project: 'circleci',
|
10
10
|
user_name: 'mtchavez',
|
11
11
|
branch_name: 'master',
|
12
12
|
circle_token: '123'
|
13
|
-
}
|
13
|
+
}
|
14
14
|
}
|
15
15
|
|
16
16
|
let(:project) { Project.new(repo) }
|
@@ -63,10 +63,10 @@ module Circle::CLI
|
|
63
63
|
end
|
64
64
|
|
65
65
|
describe '#tests', vcr: { cassette_name: 'tests' } do
|
66
|
-
let(:build) { Build.new(project, 'build_num' =>
|
66
|
+
let(:build) { Build.new(project, 'build_num' => 140) }
|
67
67
|
|
68
68
|
it 'returns a list of tests' do
|
69
|
-
expect(build.tests.length).to eq(
|
69
|
+
expect(build.tests.length).to eq(78)
|
70
70
|
end
|
71
71
|
|
72
72
|
it 'caches the test results' do
|
@@ -77,15 +77,15 @@ module Circle::CLI
|
|
77
77
|
end
|
78
78
|
|
79
79
|
describe '#passing_tests', vcr: { cassette_name: 'tests' } do
|
80
|
-
let(:build) { Build.new(project, 'build_num' =>
|
80
|
+
let(:build) { Build.new(project, 'build_num' => 140) }
|
81
81
|
|
82
82
|
it 'returns only passing specs' do
|
83
|
-
expect(build.passing_tests.length).to eq(
|
83
|
+
expect(build.passing_tests.length).to eq(78)
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
87
|
describe '#failing_tests', vcr: { cassette_name: 'tests' } do
|
88
|
-
let(:build) { Build.new(project, 'build_num' =>
|
88
|
+
let(:build) { Build.new(project, 'build_num' => 140) }
|
89
89
|
|
90
90
|
it 'returns only failing specs' do
|
91
91
|
expect(build.failing_tests.length).to eq(0)
|
@@ -93,7 +93,7 @@ module Circle::CLI
|
|
93
93
|
end
|
94
94
|
|
95
95
|
describe '#details', vcr: { cassette_name: 'get' } do
|
96
|
-
let(:build) { Build.new(project, 'build_num' =>
|
96
|
+
let(:build) { Build.new(project, 'build_num' => 140) }
|
97
97
|
|
98
98
|
it 'caches the response' do
|
99
99
|
expect(project).to receive(:request).once.and_call_original
|
@@ -1,15 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'circle/cli/project'
|
3
|
+
require 'circle/cli/repo'
|
3
4
|
|
4
5
|
module Circle::CLI
|
5
6
|
RSpec.describe Project do
|
6
7
|
let(:repo) {
|
7
|
-
instance_double
|
8
|
-
project: '
|
8
|
+
instance_double Repo, {
|
9
|
+
project: 'circleci',
|
9
10
|
user_name: 'mtchavez',
|
10
11
|
branch_name: 'master',
|
11
12
|
circle_token: '123'
|
12
|
-
}
|
13
|
+
}
|
13
14
|
}
|
14
15
|
|
15
16
|
let(:project) {
|
@@ -28,7 +29,7 @@ module Circle::CLI
|
|
28
29
|
|
29
30
|
describe '#latest', vcr: { cassette_name: 'recent_builds_branch' } do
|
30
31
|
subject { project.latest['status'] }
|
31
|
-
specify { is_expected.to eq('
|
32
|
+
specify { is_expected.to eq('success') }
|
32
33
|
end
|
33
34
|
end
|
34
35
|
end
|
@@ -6,19 +6,17 @@ module Circle::CLI
|
|
6
6
|
let(:options) { {} }
|
7
7
|
let(:repo) { Repo.new(options) }
|
8
8
|
let(:uri) { 'git@github.com:organization/repo.git' }
|
9
|
-
|
10
|
-
let(:
|
11
|
-
|
12
|
-
}
|
13
|
-
|
14
|
-
let(:git) {
|
15
|
-
instance_double('Rugged::Repository', {
|
16
|
-
config: {'circleci.token' => '123' },
|
17
|
-
remotes: [origin]
|
18
|
-
})
|
19
|
-
}
|
9
|
+
let(:origin) { instance_double Git::Remote, url: uri }
|
10
|
+
let(:git) { instance_double Git::Base, current_branch: 'bug/jawn' }
|
11
|
+
let(:repo_config) { { 'circleci.token' => '123' } }
|
20
12
|
|
21
13
|
before do
|
14
|
+
allow(git).to receive(:config) do |name, value|
|
15
|
+
repo_config[name] = value if value
|
16
|
+
repo_config[name]
|
17
|
+
end
|
18
|
+
|
19
|
+
allow(git).to receive(:remote).and_return(origin)
|
22
20
|
allow(repo).to receive(:repo).and_return(git)
|
23
21
|
end
|
24
22
|
|
@@ -46,8 +44,6 @@ module Circle::CLI
|
|
46
44
|
end
|
47
45
|
|
48
46
|
context 'when :branch isnt provided' do
|
49
|
-
let(:head) { double('head', name: 'refs/heads/bug/jawn') }
|
50
|
-
before { allow(git).to receive(:head).and_return(head) }
|
51
47
|
specify { is_expected.to eq('bug/jawn') }
|
52
48
|
end
|
53
49
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'circle/cli/watcher'
|
3
|
+
|
4
|
+
module Circle::CLI
|
5
|
+
RSpec.describe Watcher do
|
6
|
+
describe '#display' do
|
7
|
+
it 'invokes the block given in initialize' do
|
8
|
+
displayer = -> {}
|
9
|
+
watcher = described_class.new(&displayer)
|
10
|
+
expect(displayer).to receive(:call).once
|
11
|
+
watcher.display
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#to_preload' do
|
16
|
+
let(:watcher) { described_class.new {} }
|
17
|
+
|
18
|
+
it 'assigns a preloader block' do
|
19
|
+
preloader = -> {}
|
20
|
+
watcher.to_preload(&preloader)
|
21
|
+
expect(watcher.preloader).to eq(preloader)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#preload' do
|
26
|
+
let(:watcher) { described_class.new {} }
|
27
|
+
|
28
|
+
it 'invokes the preloader' do
|
29
|
+
preloader = -> {}
|
30
|
+
watcher.to_preload(&preloader)
|
31
|
+
expect(preloader).to receive(:call)
|
32
|
+
watcher.preload
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe '#poll' do
|
37
|
+
let(:watcher) { described_class.new {} }
|
38
|
+
|
39
|
+
it 'displays, sleeps, preloads, then clears the screen and exits on Interrupt' do
|
40
|
+
expect(watcher).to receive(:display).once.ordered
|
41
|
+
expect(watcher).to receive(:sleep).with(42).once.ordered
|
42
|
+
expect(watcher).to receive(:preload).once.ordered
|
43
|
+
expect(watcher).to receive(:clear).and_raise(Interrupt).once.ordered
|
44
|
+
expect { watcher.poll(42) }.to raise_error(SystemExit)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: circle-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Keith
|
@@ -9,78 +9,108 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: circleci
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.0.3
|
18
21
|
- - ">="
|
19
22
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
23
|
+
version: 1.0.3
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.0.3
|
25
31
|
- - ">="
|
26
32
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
33
|
+
version: 1.0.3
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
35
|
+
name: git
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.3.0
|
32
41
|
- - ">="
|
33
42
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
43
|
+
version: 1.3.0
|
35
44
|
type: :runtime
|
36
45
|
prerelease: false
|
37
46
|
version_requirements: !ruby/object:Gem::Requirement
|
38
47
|
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 1.3.0
|
39
51
|
- - ">="
|
40
52
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
53
|
+
version: 1.3.0
|
42
54
|
- !ruby/object:Gem::Dependency
|
43
55
|
name: gitable
|
44
56
|
requirement: !ruby/object:Gem::Requirement
|
45
57
|
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.3.1
|
46
61
|
- - ">="
|
47
62
|
- !ruby/object:Gem::Version
|
48
|
-
version:
|
63
|
+
version: 0.3.1
|
49
64
|
type: :runtime
|
50
65
|
prerelease: false
|
51
66
|
version_requirements: !ruby/object:Gem::Requirement
|
52
67
|
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 0.3.1
|
53
71
|
- - ">="
|
54
72
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
73
|
+
version: 0.3.1
|
56
74
|
- !ruby/object:Gem::Dependency
|
57
75
|
name: launchy
|
58
76
|
requirement: !ruby/object:Gem::Requirement
|
59
77
|
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 2.4.3
|
60
81
|
- - ">="
|
61
82
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
83
|
+
version: 2.4.3
|
63
84
|
type: :runtime
|
64
85
|
prerelease: false
|
65
86
|
version_requirements: !ruby/object:Gem::Requirement
|
66
87
|
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 2.4.3
|
67
91
|
- - ">="
|
68
92
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
93
|
+
version: 2.4.3
|
70
94
|
- !ruby/object:Gem::Dependency
|
71
95
|
name: thor
|
72
96
|
requirement: !ruby/object:Gem::Requirement
|
73
97
|
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 0.19.1
|
74
101
|
- - ">="
|
75
102
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
103
|
+
version: 0.19.1
|
77
104
|
type: :runtime
|
78
105
|
prerelease: false
|
79
106
|
version_requirements: !ruby/object:Gem::Requirement
|
80
107
|
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.19.1
|
81
111
|
- - ">="
|
82
112
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
113
|
+
version: 0.19.1
|
84
114
|
- !ruby/object:Gem::Dependency
|
85
115
|
name: bundler
|
86
116
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,6 +118,9 @@ dependencies:
|
|
88
118
|
- - "~>"
|
89
119
|
- !ruby/object:Gem::Version
|
90
120
|
version: '1.5'
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1.5'
|
91
124
|
type: :development
|
92
125
|
prerelease: false
|
93
126
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -95,76 +128,109 @@ dependencies:
|
|
95
128
|
- - "~>"
|
96
129
|
- !ruby/object:Gem::Version
|
97
130
|
version: '1.5'
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '1.5'
|
98
134
|
- !ruby/object:Gem::Dependency
|
99
135
|
name: rake
|
100
136
|
requirement: !ruby/object:Gem::Requirement
|
101
137
|
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 11.2.2
|
102
141
|
- - ">="
|
103
142
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
143
|
+
version: 11.2.2
|
105
144
|
type: :development
|
106
145
|
prerelease: false
|
107
146
|
version_requirements: !ruby/object:Gem::Requirement
|
108
147
|
requirements:
|
148
|
+
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 11.2.2
|
109
151
|
- - ">="
|
110
152
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
153
|
+
version: 11.2.2
|
112
154
|
- !ruby/object:Gem::Dependency
|
113
155
|
name: rspec
|
114
156
|
requirement: !ruby/object:Gem::Requirement
|
115
157
|
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 3.5.0
|
116
161
|
- - ">="
|
117
162
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
163
|
+
version: 3.5.0
|
119
164
|
type: :development
|
120
165
|
prerelease: false
|
121
166
|
version_requirements: !ruby/object:Gem::Requirement
|
122
167
|
requirements:
|
168
|
+
- - "~>"
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: 3.5.0
|
123
171
|
- - ">="
|
124
172
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
173
|
+
version: 3.5.0
|
126
174
|
- !ruby/object:Gem::Dependency
|
127
175
|
name: vcr
|
128
176
|
requirement: !ruby/object:Gem::Requirement
|
129
177
|
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 3.0.3
|
130
181
|
- - ">="
|
131
182
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
183
|
+
version: 3.0.3
|
133
184
|
type: :development
|
134
185
|
prerelease: false
|
135
186
|
version_requirements: !ruby/object:Gem::Requirement
|
136
187
|
requirements:
|
188
|
+
- - "~>"
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: 3.0.3
|
137
191
|
- - ">="
|
138
192
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
193
|
+
version: 3.0.3
|
140
194
|
- !ruby/object:Gem::Dependency
|
141
195
|
name: webmock
|
142
196
|
requirement: !ruby/object:Gem::Requirement
|
143
197
|
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 2.1.0
|
144
201
|
- - ">="
|
145
202
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
203
|
+
version: 2.1.0
|
147
204
|
type: :development
|
148
205
|
prerelease: false
|
149
206
|
version_requirements: !ruby/object:Gem::Requirement
|
150
207
|
requirements:
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: 2.1.0
|
151
211
|
- - ">="
|
152
212
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
213
|
+
version: 2.1.0
|
154
214
|
- !ruby/object:Gem::Dependency
|
155
215
|
name: simplecov
|
156
216
|
requirement: !ruby/object:Gem::Requirement
|
157
217
|
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: 0.12.0
|
158
221
|
- - ">="
|
159
222
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
223
|
+
version: 0.12.0
|
161
224
|
type: :development
|
162
225
|
prerelease: false
|
163
226
|
version_requirements: !ruby/object:Gem::Requirement
|
164
227
|
requirements:
|
228
|
+
- - "~>"
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: 0.12.0
|
165
231
|
- - ">="
|
166
232
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
233
|
+
version: 0.12.0
|
168
234
|
description: A bunch of commands useful to deal with Circle CI without leaving your
|
169
235
|
terminal.
|
170
236
|
email:
|
@@ -193,6 +259,7 @@ files:
|
|
193
259
|
- lib/circle/cli/repo.rb
|
194
260
|
- lib/circle/cli/step.rb
|
195
261
|
- lib/circle/cli/version.rb
|
262
|
+
- lib/circle/cli/watcher.rb
|
196
263
|
- spec/cassettes/get.yml
|
197
264
|
- spec/cassettes/recent_builds.yml
|
198
265
|
- spec/cassettes/recent_builds_branch.yml
|
@@ -201,8 +268,9 @@ files:
|
|
201
268
|
- spec/circle/cli/project_spec.rb
|
202
269
|
- spec/circle/cli/repo_spec.rb
|
203
270
|
- spec/circle/cli/step_spec.rb
|
271
|
+
- spec/circle/cli/watcher_spec.rb
|
204
272
|
- spec/spec_helper.rb
|
205
|
-
homepage:
|
273
|
+
homepage: https://github.com/circle-cli/circle-cli
|
206
274
|
licenses:
|
207
275
|
- MIT
|
208
276
|
metadata: {}
|
@@ -222,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
290
|
version: '0'
|
223
291
|
requirements: []
|
224
292
|
rubyforge_project:
|
225
|
-
rubygems_version: 2.
|
293
|
+
rubygems_version: 2.5.1
|
226
294
|
signing_key:
|
227
295
|
specification_version: 4
|
228
296
|
summary: Command line tools for Circle CI
|
@@ -235,4 +303,5 @@ test_files:
|
|
235
303
|
- spec/circle/cli/project_spec.rb
|
236
304
|
- spec/circle/cli/repo_spec.rb
|
237
305
|
- spec/circle/cli/step_spec.rb
|
306
|
+
- spec/circle/cli/watcher_spec.rb
|
238
307
|
- spec/spec_helper.rb
|