construi 0.35.2 → 0.36.0

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.
@@ -9,6 +9,8 @@ RSpec.describe Construi::Image do
9
9
  let!(:docker_image_class) { class_spy(Docker::Image).as_stubbed_const }
10
10
  let!(:container_class) { class_spy(Construi::Container).as_stubbed_const }
11
11
 
12
+ let(:default_options) { { env: [] } }
13
+
12
14
  subject(:image) { Construi::Image.wrap(docker_image) }
13
15
 
14
16
  describe '#id' do
@@ -42,9 +44,9 @@ RSpec.describe Construi::Image do
42
44
  let(:env) { ['VAR1=VALUE1'] }
43
45
  let!(:container) { class_spy(Construi::Container).as_stubbed_const }
44
46
 
45
- subject! { image.run(cmd, env) }
47
+ subject! { image.run(cmd, env: env) }
46
48
 
47
- it { expect(container).to have_received(:run).with(image, cmd, env) }
49
+ it { expect(container).to have_received(:run).with(image, cmd, env: env) }
48
50
  end
49
51
 
50
52
  describe '#insert_local' do
@@ -66,7 +68,7 @@ RSpec.describe Construi::Image do
66
68
  .to have_received(:insert_local)
67
69
  .with 'localPath' => host, 'outputPath' => container
68
70
  end
69
- it { expect(container_class).to have_received(:run).with(image, "ls -l #{container}", []) }
71
+ it { expect(container_class).to have_received(:run).with(image, "ls -l #{container}", default_options) }
70
72
  end
71
73
 
72
74
  context 'with permissions' do
@@ -81,10 +83,10 @@ RSpec.describe Construi::Image do
81
83
  it do
82
84
  expect(container_class)
83
85
  .to have_received(:run)
84
- .with(image, "chmod -R #{permissions} #{container}", [])
86
+ .with(image, "chmod -R #{permissions} #{container}", {})
85
87
  end
86
88
  it { expect($stdout.string).to include(" > chmod -R #{permissions} #{container}") }
87
- it { expect(container_class).to have_received(:run).with(image, "ls -l #{container}", []) }
89
+ it { expect(container_class).to have_received(:run).with(image, "ls -l #{container}", default_options) }
88
90
  end
89
91
 
90
92
  end
@@ -232,7 +234,7 @@ RSpec.describe Construi::IntermediateImage do
232
234
  context "single run" do
233
235
  subject! { intermediate_image.run(cmd, env) }
234
236
 
235
- it { expect(image).to have_received(:run).with(cmd, env) }
237
+ it { expect(image).to have_received(:run).with(cmd, env: env) }
236
238
  it { expect(image).to_not have_received(:delete) }
237
239
  it { expect(second_image).to_not have_received(:delete) }
238
240
  end
@@ -240,7 +242,7 @@ RSpec.describe Construi::IntermediateImage do
240
242
  context "double run" do
241
243
  subject! { intermediate_image.run(cmd, env).run(cmd, env) }
242
244
 
243
- it { expect(second_image).to have_received(:run).with(cmd, env) }
245
+ it { expect(second_image).to have_received(:run).with(cmd, env: env) }
244
246
  it { expect(second_image).to have_received(:delete) }
245
247
  end
246
248
  end
@@ -32,7 +32,7 @@ RSpec.describe Construi::Runner do
32
32
  subject! { runner.run(targets) }
33
33
 
34
34
  it { expect(docker).to have_received(:validate_version!) }
35
- it { expect(image).to have_received(:run).with('cmd1', []) }
35
+ it { expect(image).to have_received(:run).with('cmd1', env: [], privileged: false) }
36
36
  it { expect(image).to have_received(:delete) }
37
37
 
38
38
  it { expect($stdout.string).to include('Running target1...'.green) }
data/spec/spec_helper.rb CHANGED
@@ -1,17 +1,17 @@
1
1
 
2
- require 'codeclimate-test-reporter'
3
- require 'coveralls'
4
2
  require 'stringio'
5
3
 
6
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
- Coveralls::SimpleCov::Formatter,
8
- SimpleCov::Formatter::HTMLFormatter,
9
- CodeClimate::TestReporter::Formatter
10
- ]
4
+ if ENV['COVERAGE']
5
+ require 'simplecov'
11
6
 
12
- SimpleCov.start do
13
- add_filter '/vendor/'
14
- add_filter '/spec'
7
+ SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
8
+
9
+ SimpleCov.start do
10
+ add_filter '/vendor/'
11
+ add_filter '/spec'
12
+
13
+ coverage_dir 'target/site/coverage'
14
+ end
15
15
  end
16
16
 
17
17
  require 'construi'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: construi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.35.2
4
+ version: 0.36.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - lstephen
8
+ - Levi Stephen
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-29 00:00:00.000000000 Z
12
+ date: 2015-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: docker-api
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '1.7'
53
+ version: '1.9'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,15 +58,15 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '1.7'
61
+ version: '1.9'
62
62
  - !ruby/object:Gem::Dependency
63
- name: codeclimate-test-reporter
63
+ name: execjs
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: '0.4'
69
+ version: '2.5'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,9 +74,9 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: '0.4'
77
+ version: '2.5'
78
78
  - !ruby/object:Gem::Dependency
79
- name: coveralls
79
+ name: gem-release
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
@@ -92,13 +92,13 @@ dependencies:
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0.7'
94
94
  - !ruby/object:Gem::Dependency
95
- name: gem-release
95
+ name: jekyll
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
- version: '0.7'
101
+ version: '2.5'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: '0.7'
109
+ version: '2.5'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: rake
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,23 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: '10.0'
117
+ version: '10.4'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '10.4'
126
+ - !ruby/object:Gem::Dependency
127
+ name: redcarpet
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '3.2'
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +138,7 @@ dependencies:
122
138
  requirements:
123
139
  - - ~>
124
140
  - !ruby/object:Gem::Version
125
- version: '10.0'
141
+ version: '3.2'
126
142
  - !ruby/object:Gem::Dependency
127
143
  name: rspec
128
144
  requirement: !ruby/object:Gem::Requirement
@@ -139,6 +155,70 @@ dependencies:
139
155
  - - ~>
140
156
  - !ruby/object:Gem::Version
141
157
  version: '3.2'
158
+ - !ruby/object:Gem::Dependency
159
+ name: rubocop
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '0.31'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '0.31'
174
+ - !ruby/object:Gem::Dependency
175
+ name: simplecov
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '0.10'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: '0.10'
190
+ - !ruby/object:Gem::Dependency
191
+ name: therubyracer
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: '0.12'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: '0.12'
206
+ - !ruby/object:Gem::Dependency
207
+ name: yard
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: '0.8'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: '0.8'
142
222
  description: Build tool using Docker to specify build environment
143
223
  email:
144
224
  - levi.stephen@gmail.com
@@ -159,6 +239,8 @@ files:
159
239
  - construi.yml
160
240
  - construi/deploy/script.sh
161
241
  - construi/release/script.sh
242
+ - construi/site/Dockerfile
243
+ - construi/site/run.sh
162
244
  - lib/construi.rb
163
245
  - lib/construi/config.rb
164
246
  - lib/construi/container.rb
@@ -166,13 +248,16 @@ files:
166
248
  - lib/construi/runner.rb
167
249
  - lib/construi/target.rb
168
250
  - lib/construi/version.rb
251
+ - site/_config.yml
252
+ - site/_layouts/default.html
253
+ - site/css/main.css
254
+ - site/index.md
169
255
  - spec/lib/construi/config_spec.rb
170
256
  - spec/lib/construi/container_spec.rb
171
257
  - spec/lib/construi/image_spec.rb
172
258
  - spec/lib/construi/runner_spec.rb
173
259
  - spec/lib/construi/target_spec.rb
174
260
  - spec/lib/construi_spec.rb
175
- - spec/lib/container_spec.rb
176
261
  - spec/sanity_spec.rb
177
262
  - spec/spec_helper.rb
178
263
  homepage: https://github.com/lstephen/construi
@@ -196,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
281
  version: '0'
197
282
  segments:
198
283
  - 0
199
- hash: -511268668322759915
284
+ hash: 3996143920921331195
200
285
  requirements: []
201
286
  rubyforge_project:
202
287
  rubygems_version: 1.8.23.2
@@ -210,6 +295,6 @@ test_files:
210
295
  - spec/lib/construi/runner_spec.rb
211
296
  - spec/lib/construi/target_spec.rb
212
297
  - spec/lib/construi_spec.rb
213
- - spec/lib/container_spec.rb
214
298
  - spec/sanity_spec.rb
215
299
  - spec/spec_helper.rb
300
+ has_rdoc:
@@ -1,132 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'securerandom'
4
-
5
- RSpec.describe Construi::Container do
6
- let!(:docker_container_class) { class_spy(Docker::Container).as_stubbed_const }
7
- let(:docker_container) do
8
- instance_double(Docker::Container, :id => SecureRandom.hex(16)).as_null_object
9
- end
10
-
11
- let(:image_id) { SecureRandom.hex(16) }
12
- let(:image) { instance_double(Docker::Image, :id => image_id).as_null_object }
13
-
14
- let(:container) { Construi::Container.wrap docker_container }
15
-
16
- describe '#delete' do
17
- subject! { container.delete }
18
-
19
- it { expect(docker_container).to have_received(:delete) }
20
- end
21
-
22
- describe '#attach_stdout' do
23
- subject(:attach_stdout) { -> { container.attach_stdout } }
24
-
25
- context 'when attached succesfully' do
26
- before do
27
- allow(docker_container)
28
- .to receive(:attach)
29
- .and_yield('stream', 'msg1')
30
- .and_yield('stream', 'msg2')
31
- end
32
-
33
- subject! { attach_stdout.call }
34
-
35
- it { expect(docker_container).to have_received(:attach).with(:stream => true, :logs => true) }
36
- it { expect($stdout.string).to include("msg1\nmsg2") }
37
- end
38
-
39
- context 'when attach times out' do
40
- before do
41
- allow(docker_container)
42
- .to receive(:attach)
43
- .and_raise(Docker::Error::TimeoutError.new)
44
- end
45
-
46
- subject! { attach_stdout.call }
47
-
48
- it { expect($stdout.string).to include('Failed to attach to stdout'.yellow) }
49
- end
50
- end
51
-
52
- describe '#commit' do
53
- before { allow(docker_container).to receive(:commit).and_return image }
54
-
55
- subject! { container.commit }
56
-
57
- it { expect(docker_container).to have_received(:commit) }
58
- it { is_expected.to eq(Construi::Image.wrap(image)) }
59
- end
60
-
61
- describe '#run' do
62
- before { allow(docker_container).to receive(:wait).and_return({'StatusCode' => status_code}) }
63
- before { allow(docker_container).to receive(:commit).and_return image }
64
-
65
- subject(:run) { -> { container.run } }
66
-
67
- context 'when command succeeds' do
68
- let(:status_code) { 0 }
69
-
70
- subject! { run.call }
71
-
72
- it { expect(docker_container).to have_received(:start) }
73
- it { expect(docker_container).to have_received(:attach).with(:stream => true, :logs => true) }
74
- it { expect(docker_container).to have_received(:wait) }
75
- it { expect(docker_container).to have_received(:commit) }
76
- it { is_expected.to eq(Construi::Image.wrap(image)) }
77
- end
78
-
79
- context 'when command fails' do
80
- let(:status_code) { 1 }
81
-
82
- it { expect { run.call }.to raise_error Construi::Container::Error, /status code: 1/}
83
- end
84
- end
85
-
86
- describe '.create' do
87
- let(:cmd) { 'cmd1 p1 p2' }
88
- let(:env) { ['ENV1=VAL1', 'ENV2=VAL2'] }
89
- let(:pwd) { '/project/dir' }
90
-
91
- before { allow(docker_container_class).to receive(:create).and_return docker_container }
92
- before { allow(Dir).to receive(:pwd).and_return(pwd) }
93
-
94
- subject! { Construi::Container::create(image, cmd, env) }
95
-
96
- it do
97
- expect(docker_container_class).to have_received(:create).with( {
98
- 'Cmd' => ['cmd1', 'p1', 'p2' ],
99
- 'Image' => image_id,
100
- 'Env' => env.to_json,
101
- 'Tty' => false,
102
- 'WorkingDir' => '/var/workspace',
103
- 'HostConfig' => { 'Binds' => ["#{pwd}:/var/workspace"] }
104
- } )
105
- end
106
- it { is_expected.to eq(Construi::Container.wrap docker_container) }
107
- end
108
-
109
- describe '.run' do
110
- let(:cmd) { 'cmd1 p1 p2' }
111
-
112
- before { allow(docker_container_class).to receive(:create).and_return docker_container }
113
- before { allow(docker_container).to receive(:wait).and_return({'StatusCode' => 0}) }
114
- before { allow(docker_container).to receive(:commit).and_return image }
115
-
116
- subject! { Construi::Container.run(image, cmd, []) }
117
-
118
- it do
119
- expect(docker_container_class).to have_received(:create).with(
120
- hash_including( {
121
- 'Cmd' => ['cmd1', 'p1', 'p2'],
122
- 'Image' => image_id
123
- }))
124
- end
125
- it { is_expected.to eq(Construi::Image.wrap image) }
126
- it { expect(docker_container).to have_received(:start) }
127
- it { expect(docker_container).to have_received(:commit) }
128
- it { expect(docker_container).to have_received(:delete) }
129
- end
130
-
131
- end
132
-