manifest-builder 0.6.2 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b10b3d8ea6cfc58960b69110ceb02434f017b35
4
- data.tar.gz: 1d2dc07ea272e2d8ffde9016586873cd5e834350
3
+ metadata.gz: 4f8692350e883642c61400675d5b04780b553a5b
4
+ data.tar.gz: 61d48a5874ff2b1c8aed3bd1c4accda5a1d6032c
5
5
  SHA512:
6
- metadata.gz: f545e10d18b032a1c4f2de06f63f684cff93e2d1fd3d9ddea06e4c976a7f7192e73d6bce5be5b3ff76300f76ddda5a093308c55b472bbf1e287a43f5283781cd
7
- data.tar.gz: 6e88d6c42454c00614ced3186896e6744682e451c8557e8f482b26c1b69f36664aa5c951cf75704873247dbb5ed67b69512c5594ab483f46cd285644a2ab8d1f
6
+ metadata.gz: 06cba7f7f72e817a3343664c3c8cf9dd9218a0006d71a0b35e6722c09685771bc839f48ab5c9377df8f898b2ada4acb344531fd9ffc6648d69d08f09deb015e2
7
+ data.tar.gz: 32ecf4772c0abb9180b9f965a6cbec2d481786cd6d55fdc8dc60e3f08c06d0444d4815f4809347d5913061c769d93573982f1d66543b3801c2467ecccc89e20c
@@ -1,23 +1,23 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- manifest-builder (0.6.2)
4
+ manifest-builder (0.6.4)
5
5
  archive-tar-minitar (= 0.5.2)
6
- chefrepo-builder (>= 0.9.32, < 1.1)
6
+ chefrepo-builder (>= 0.9.34, < 1.1)
7
7
  json (>= 1.8.1, < 1.9)
8
8
  s3etag (>= 0.0.1, < 0.1.0)
9
9
 
10
10
  PATH
11
11
  remote: ../chefrepo-builder
12
12
  specs:
13
- chefrepo-builder (0.9.32)
14
- cicd-builder (>= 0.9.47, < 1.1)
13
+ chefrepo-builder (0.9.34)
14
+ cicd-builder (>= 0.9.50, < 1.1)
15
15
  json (= 1.8.1)
16
16
 
17
17
  PATH
18
18
  remote: ../cicd-builder
19
19
  specs:
20
- cicd-builder (0.9.48)
20
+ cicd-builder (0.9.50)
21
21
  artifactory (>= 2.2.1, < 2.3)
22
22
  awesome_print (>= 1.6, < 2.0)
23
23
  aws-sdk (>= 2.0, < 2.1)
@@ -26,6 +26,8 @@ PATH
26
26
  inifile (>= 3.0.0, < 3.1)
27
27
  json (>= 1.8.1, < 1.9)
28
28
  logging (>= 1.8.2, < 1.9)
29
+ parallel (>= 1.4.1, < 1.5)
30
+ ruby-progressbar (>= 1.7.5, < 2)
29
31
  semverse (>= 1.2.1, < 1.3)
30
32
  yajl-ruby (>= 1.2.1, < 1.3)
31
33
 
@@ -35,14 +37,14 @@ GEM
35
37
  archive-tar-minitar (0.5.2)
36
38
  artifactory (2.2.1)
37
39
  awesome_print (1.6.1)
38
- aws-sdk (2.0.39)
39
- aws-sdk-resources (= 2.0.39)
40
- aws-sdk-core (2.0.39)
40
+ aws-sdk (2.0.41)
41
+ aws-sdk-resources (= 2.0.41)
42
+ aws-sdk-core (2.0.41)
41
43
  builder (~> 3.0)
42
44
  jmespath (~> 1.0)
43
45
  multi_json (~> 1.0)
44
- aws-sdk-resources (2.0.39)
45
- aws-sdk-core (= 2.0.39)
46
+ aws-sdk-resources (2.0.41)
47
+ aws-sdk-core (= 2.0.41)
46
48
  builder (3.2.2)
47
49
  chef (12.0.3)
48
50
  chef-zero (~> 3.2)
@@ -95,7 +97,7 @@ GEM
95
97
  little-plugger (>= 1.1.3)
96
98
  multi_json (>= 1.8.4)
97
99
  method_source (0.8.2)
98
- mime-types (2.4.3)
100
+ mime-types (2.5)
99
101
  mixlib-authentication (1.3.0)
100
102
  mixlib-log
101
103
  mixlib-cli (1.5.0)
@@ -109,7 +111,7 @@ GEM
109
111
  net-ssh-multi (1.2.1)
110
112
  net-ssh (>= 2.6.5)
111
113
  net-ssh-gateway (>= 1.2.0)
112
- ohai (8.2.0)
114
+ ohai (8.3.0)
113
115
  ffi (~> 1.9)
114
116
  ffi-yajl (>= 1.1, < 3.0)
115
117
  ipaddress
@@ -121,6 +123,7 @@ GEM
121
123
  rake (~> 10.1)
122
124
  systemu (~> 2.6.4)
123
125
  wmi-lite (~> 1.0)
126
+ parallel (1.4.1)
124
127
  plist (3.1.0)
125
128
  pry (0.10.1)
126
129
  coderay (~> 1.1.0)
@@ -136,6 +139,7 @@ GEM
136
139
  rspec-expectations (2.99.2)
137
140
  diff-lcs (>= 1.1.3, < 2.0)
138
141
  rspec-mocks (2.99.3)
142
+ ruby-progressbar (1.7.5)
139
143
  rubygems-tasks (0.2.4)
140
144
  s3etag (0.0.1)
141
145
  semverse (1.2.1)
@@ -8,6 +8,7 @@ module CiCd
8
8
  require 'cicd/builder/manifest/version'
9
9
 
10
10
  module Manifest
11
+ CLASS = 'CiCd::Builder::Manifest'
11
12
  class Runner < ChefRepo::Runner
12
13
  require 'cicd/builder/manifest/mixlib/build'
13
14
  require 'cicd/builder/manifest/mixlib/repo'
@@ -9,6 +9,7 @@ module CiCd
9
9
  # ---------------------------------------------------------------------------------------------------------------
10
10
  # noinspection RubyHashKeysTypesInspection
11
11
  def prepareBuild()
12
+ @logger.step CLASS+'::'+__method__.to_s
12
13
  ret = super
13
14
  if ret == 0
14
15
  @vars[:artifacts] = []
@@ -157,33 +158,22 @@ module CiCd
157
158
 
158
159
  # ---------------------------------------------------------------------------------------------------------------
159
160
  def packageBuild()
160
- @logger.step __method__.to_s
161
+ @logger.info CLASS+'::'+__method__.to_s
161
162
  if isSameDirectory(Dir.pwd, ENV['WORKSPACE'])
162
163
  if @vars.has_key?(:components) and not @vars[:components].empty?
163
164
  @vars[:return_code] = 0
164
165
 
165
- clazz = getRepoClass('S3')
166
- @logger.debug "Repo class == '#{clazz}'"
167
- if clazz.is_a?(Class) and not clazz.nil?
168
- @repo = clazz.new(self)
169
-
166
+ getRepoInstance('S3')
167
+ if 0 == @vars[:return_code]
168
+ lines = []
169
+ @vars[:artifacts] = []
170
+ # Deal with all artifacts of each component
171
+ @vars[:components].each { |comp|
172
+ processComponent(comp, lines)
173
+ }
170
174
  if @vars[:return_code] == 0
171
- lines = []
172
- @vars[:artifacts] = []
173
- # Deal with all artifacts of each component
174
- @vars[:components].each { |comp|
175
- processComponent(comp, lines)
176
- }
177
- if @vars[:return_code] == 0
178
- cleanupAfterPackaging(lines)
179
- end
180
-
181
- else
182
- @logger.fatal "S3 repo error: Bucket #{ENV['AWS_S3_BUCKET']}"
175
+ cleanupAfterPackaging(lines)
183
176
  end
184
- else
185
- @logger.error "CiCd::Builder::Repo::#{type} is not a valid repo class"
186
- @vars[:return_code] = Errors::BUILDER_REPO_TYPE
187
177
  end
188
178
  else
189
179
  @logger.error 'No components found during preparation?'
@@ -217,7 +207,7 @@ module CiCd
217
207
  end
218
208
  end
219
209
 
220
- private
210
+ protected
221
211
 
222
212
  # ---------------------------------------------------------------------------------------------------------------
223
213
  def processComponent(comp, lines)
@@ -227,7 +217,7 @@ module CiCd
227
217
  require 'uri'
228
218
  require 'digest'
229
219
  begin
230
- key, name, objects = getObjects(artifact, path)
220
+ key, bucket, objects = getObjects(artifact, path,cdata)
231
221
  local_dir = File.join(@vars[:local_dirs]['artifacts'], cname, '')
232
222
  Dir.mkdir(local_dir, 0700) unless File.directory?(local_dir)
233
223
  artifacts = []
@@ -244,7 +234,7 @@ module CiCd
244
234
  etag = object.etag.gsub(%r/['"]/, '')
245
235
  download = shouldDownload?(etag, local, object)
246
236
  if download
247
- changed = doDownload(etag, local, object)
237
+ changed = doDownload(etag, local, object, bucket)
248
238
  else
249
239
  @logger.info "\t\tunchanged"
250
240
  end
@@ -261,7 +251,7 @@ module CiCd
261
251
  artifacts.each do |local|
262
252
  base = File.basename(local)
263
253
  if sha256[base].is_a?(String)
264
- msg = "Artifact checksum is invalid or manifest is incorrect. Artifact: s3://#{name}/#{key}#{artifact}, SHA256: Manifest=#{cdata[:sha256]}, Actual=#{sha256[base]}"
254
+ msg = "Artifact checksum is invalid or manifest is incorrect. Artifact: s3://#{bucket}/#{key}#{artifact}, SHA256: Manifest=#{cdata[:sha256]}, Actual=#{sha256[base]}"
265
255
  if ENV['ENFORCE_CHECKSUMS'] and ENV['ENFORCE_CHECKSUMS'].downcase =~ %r/^(yes|on|set|1|enable|active|enforced?)$/
266
256
  @logger.fatal msg
267
257
  @vars[:return_code] = Errors::ARTIFACT_CHECKSUM_BAD
@@ -280,12 +270,14 @@ module CiCd
280
270
  build: build,
281
271
  version: version,
282
272
  file: local,
283
- sha256: (sha256.keys.include?(base)) ? (sha256[base].is_a?(TrueClass) ? cdata[:sha256] : sha256[base]) : Digest::SHA256.file(local).hexdigest
273
+ sha256: (sha256.keys.include?(base)) ? (sha256[base].is_a?(TrueClass) ? cdata[:sha256] : sha256[base]) : Digest::SHA256.file(local).hexdigest,
274
+ file_name: cdata[:file_name],
275
+ file_ext: cdata[:file_ext],
284
276
  })
285
277
  end
286
278
  end
287
279
  else
288
- @logger.fatal "Artifact not found: s3://#{name}/#{key}#{artifact}"
280
+ @logger.fatal "Artifact not found: s3://#{bucket}/#{key}#{artifact}"
289
281
  @vars[:return_code] = Errors::ARTIFACT_NOT_FOUND
290
282
  end
291
283
  rescue Exception => e
@@ -295,26 +287,38 @@ module CiCd
295
287
  end
296
288
 
297
289
  # ---------------------------------------------------------------------------------------------------------------
298
- def getObjects(artifact, path)
290
+ def getObjects(artifact, path, cdata)
299
291
  parts = URI(path).path.gsub(%r'^#{File::SEPARATOR}', '').split(File::SEPARATOR)
300
- name = parts.shift
301
- bucket = getBucket(name)
302
- key = File.join(parts, '')
303
- @logger.info "S3://#{name}:#{key} URL: #{path} #{artifact}"
292
+ bucket,prefix = if cdata[:s3_bucket] and cdata[:s3_key]
293
+ [cdata[:s3_bucket],File.join(File.dirname(cdata[:s3_key]),'')]
294
+ else
295
+ name = parts.shift
296
+ [name,File.join(parts, '')]
297
+ end
298
+ @logger.info "S3://#{bucket}:#{prefix} URL: #{path} #{artifact}"
304
299
  objects = []
305
- bucket.objects(prefix: key).each do |object|
306
- if artifact.empty? or (not artifact.empty? and object.key =~ %r'#{key}#{artifact}')
307
- objects << object
300
+ @s3 = @repo.getS3() #bucket_client = getBucket(bucket)
301
+ bucket_objects = @s3.list_objects(bucket: bucket, prefix: prefix)
302
+ if bucket_objects
303
+ bucket_objects = bucket_objects[:contents]
304
+ bucket_objects.each do |object|
305
+ if artifact.empty? or (not artifact.empty? and object.key =~ %r'#{prefix}#{artifact}')
306
+ objects << object
307
+ end
308
308
  end
309
309
  end
310
- @logger.debug "S3://#{name}:#{key} has #{objects.size} objects"
311
- return key, name, objects
310
+ @logger.debug "S3://#{bucket}:#{prefix} has #{objects.size} objects"
311
+ return prefix, bucket, objects
312
312
  end
313
313
 
314
314
  # ---------------------------------------------------------------------------------------------------------------
315
- def doDownload(etag, local, object)
315
+ def doDownload(etag, local, object, bucket)
316
316
  @logger.info "\t\tdownload #{object.size} bytes"
317
- response = object.get(:response_target => local)
317
+ begin
318
+ response = object.get(:response_target => local)
319
+ rescue NoMethodError
320
+ response = @s3.get_object(bucket: bucket, key: object.key, response_target: local)
321
+ end
318
322
  File.utime(response.last_modified, response.last_modified, local)
319
323
  @logger.info "\t\tdone"
320
324
  check = calcLocalETag(etag, local)
@@ -374,7 +378,7 @@ module CiCd
374
378
  cname,cdata = comp
375
379
  if cdata[:url]
376
380
  path, artifact = File.split(cdata[:url])
377
- version, build = getVersionBuild(path, artifact, comp)
381
+ version, build = (cdata[:version] and cdata[:build]) ? [cdata[:version], cdata[:build]] : getVersionBuild(path, artifact, comp)
378
382
  elsif cdata[:base_url]
379
383
  artifact = ''
380
384
  if cdata[:build].nil?
@@ -389,7 +393,7 @@ module CiCd
389
393
  else
390
394
  path = ''
391
395
  artifact = ''
392
- version, build = getVersionBuild(path, artifact, comp)
396
+ version, build = (cdata[:version] and cdata[:build]) ? [cdata[:version], cdata[:build]] : getVersionBuild(path, artifact, comp)
393
397
  end
394
398
  return artifact, path, version, build
395
399
  end
@@ -14,7 +14,7 @@ module CiCd
14
14
 
15
15
  # ---------------------------------------------------------------------------------------------------------------
16
16
  def getRepoClass(type = nil)
17
- @logger.info __method__.to_s
17
+ @logger.step CLASS+'::'+__method__.to_s
18
18
  if type.nil?
19
19
  type ||= 'S3'
20
20
  if ENV.has_key?('REPO_TYPE')
@@ -18,16 +18,15 @@ module CiCd
18
18
  def uploadToRepo(artifacts)
19
19
  @manifest = {}
20
20
  super
21
- if @vars[:return_code] == 0
22
- # Preserve the manifest (maybeUploadArtifactoryObject will add everything we upload to the instance var)
23
- manifest = @manifest.dup
24
- # Create a manifest for each product and store it.
25
- createProductManifests(manifest)
26
- # Get a super manifest of all products and store as learning-manifest
27
- createSuperManifest(manifest) # -#{@vars[:variant]}
28
- @manifest = manifest
29
- end
21
+ handleManifests()
30
22
  # If we are asked to produce a PROJECTS_FILE then we do that from the manifest and components.
23
+ handleProjectsFile()
24
+ cleanupTempFiles()
25
+ @vars[:return_code]
26
+ end
27
+
28
+ # ---------------------------------------------------------------------------------------------------------------
29
+ def handleProjectsFile
31
30
  unless ENV['PROJECTS_FILE'].nil?
32
31
  if @vars[:return_code] == 0
33
32
  if File.directory?(File.realdirpath(File.dirname(ENV['PROJECTS_FILE'])))
@@ -38,19 +37,19 @@ module CiCd
38
37
  end
39
38
  end
40
39
  end
41
- @vars[:artifacts].each do |art|
42
- if art[:data][:temp].is_a?(FalseClass)
43
- if File.exists?(art[:data][:file])
44
- File.unlink(art[:data][:file]) if File.exists?(art[:data][:file])
45
- art[:data].delete(:file)
46
- art[:data].delete(:temp)
47
- else
48
- @logger.warn "Temporary file disappeared: #{data.ai}"
49
- @vars[:return_code] = Errors::TEMP_FILE_MISSING
50
- end
51
- end
40
+ end
41
+
42
+ # ---------------------------------------------------------------------------------------------------------------
43
+ def handleManifests
44
+ if @vars[:return_code] == 0
45
+ # Preserve the manifest (maybeUploadArtifactoryObject will add everything we upload to the instance var)
46
+ manifest = @manifest.dup
47
+ # Create a manifest for each product and store it.
48
+ createProductManifests(manifest)
49
+ # Get a super manifest of all products and store as learning-manifest
50
+ createSuperManifest(manifest) # -#{@vars[:variant]}
51
+ @manifest = manifest
52
52
  end
53
- @vars[:return_code]
54
53
  end
55
54
 
56
55
  # ---------------------------------------------------------------------------------------------------------------
@@ -191,12 +190,16 @@ module CiCd
191
190
  end
192
191
 
193
192
  def createSuperManifest(manifest)
194
- manifest_data = ''
195
- manifest.each do |mod, man|
196
- man.each do |k, v|
197
- manifest_data += "#{k}=#{v}\n"
193
+ assemble = lambda{|mani|
194
+ manifest_data = ''
195
+ mani.each do |_, man|
196
+ man.each do |k, v|
197
+ manifest_data += "#{k}=#{v}\n"
198
+ end
198
199
  end
199
- end
200
+ manifest_data
201
+ }
202
+ manifest_data = assemble.call(manifest)
200
203
  amn = artifactory_manifest_name # Just using a local iso invoking method_missing repeatedly ... ;)
201
204
  data = {module: amn, data: manifest_data, version: @vars[:build_ver], build: @vars[:build_num], properties: @properties_matrix}
202
205
  # tempArtifactFile(amn, data)
@@ -215,18 +218,22 @@ module CiCd
215
218
  key: amn,
216
219
  data: data.dup,
217
220
  }
218
- # manifest[amn]={ amn => "#{@vars[:build_ver]}-#{@vars[:build_num]}" }
219
-
220
- maybeUploadArtifactoryObject(data: data, artifact_module: amn, artifact_version: data[:version] || @vars[:version], file_name: '', file_ext: 'properties')
221
+ manifest = maybeUpdateManifest(data, manifest, assemble, amn)
222
+ if 0 == @vars[:return_code]
223
+ maybeUploadArtifactoryObject(data: data, artifact_module: amn, artifact_version: data[:version] || @vars[:version], file_name: '', file_ext: 'properties')
224
+ end
221
225
  end
222
-
223
226
  # ---------------------------------------------------------------------------------------------------------------
224
227
  def createProductManifests(manifest)
225
228
  manifest.dup.each do |mod, man|
226
- manifest_data = ''
227
- man.each do |k, v|
228
- manifest_data += "#{k}=#{v}\n"
229
- end
229
+ assemble = lambda{ |mani|
230
+ manifest_data = ''
231
+ mani.each do |k, v|
232
+ manifest_data += "#{k}=#{v}\n"
233
+ end
234
+ manifest_data
235
+ }
236
+ manifest_data = assemble.call(man)
230
237
  data = {
231
238
  name: "#{mod}-manifest",
232
239
  module: "#{mod}-manifest",
@@ -236,7 +243,6 @@ module CiCd
236
243
  build: @vars[:build_num],
237
244
  properties: @properties_matrix
238
245
  }
239
- # tempArtifactFile("#{mod}-manifest", data)
240
246
 
241
247
  data[:file] = Dir::Tmpname.create("#{mod}-manifest") do |tmpnam, n, opts|
242
248
  mode = File::RDWR|File::CREAT|File::EXCL
@@ -248,14 +254,72 @@ module CiCd
248
254
  data[:sha1] = Digest::SHA1.file(data[:file]).hexdigest
249
255
  data[:md5] = Digest::MD5.file(data[:file]).hexdigest
250
256
  @vars[:artifacts] << {
251
- key: "#{mod}-manifest",
252
- data: data.dup,
253
- }
254
- # noinspection RubyStringKeysInHashInspection
255
- # manifest["#{mod}-manifest"]={ "#{mod}-manifest" => "#{@vars[:build_ver]}-#{@vars[:build_num]}" }
257
+ key: "#{mod}-manifest",
258
+ data: data.dup,
259
+ }
260
+
261
+ maybeUpdateManifest(data, man, assemble)
262
+ if 0 == @vars[:return_code]
263
+ maybeUploadArtifactoryObject(data: data, artifact_module: data[:name], artifact_version: data[:version] || @vars[:version], file_name: '', file_ext: 'properties') # -#{@vars[:variant]}
264
+ end
265
+ end
266
+ end
256
267
 
257
- maybeUploadArtifactoryObject(data: data, artifact_module: data[:name], artifact_version: data[:version] || @vars[:version], file_name: '', file_ext: 'properties') # -#{@vars[:variant]}
268
+ # ---------------------------------------------------------------------------------------------------------------
269
+ def maybeUpdateManifest(data, man, assemble, supman=nil)
270
+ artifact_name = getArtifactName(data[:name], '', data[:version], 'properties')
271
+ artifact_path = getArtifactPath(data[:module], data[:version], data[:name])
272
+ objects = maybeArtifactoryObject(data[:module], @vars[:build_ver], false)
273
+ unless objects.nil? or objects.size == 0
274
+ @logger.info "#{artifact_name}(#{artifactory_endpoint()}/#{artifactory_repo()}/#{artifact_path}) exists - #{objects.size} results"
275
+ @logger.info "\t#{objects.map { |o| o.attributes[:uri] }.join("\n\t")}"
276
+ if objects.size > 1
277
+ @logger.error "Matched more than one artifact: #{artifact_path}/#{artifact_name}"
278
+ @vars[:return_code] = Errors::ARTIFACT_MULTI_MATCH
279
+ else
280
+ # Download over our temp file
281
+ local_dir, local_fil = File.split(data[:file])
282
+ @logger.info "Download #{data[:name]} to #{local_fil}"
283
+ @arti_download_artifact = false
284
+ 3.times{
285
+ monitor(30){
286
+ IO.write(data[:file], '')
287
+ objects[0].download(local_dir, filename: local_fil)
288
+ @arti_download_artifact = true
289
+ }
290
+ break if @arti_download_artifact
291
+ }
292
+ # Add our manifest
293
+ data[:data] = IO.read(data[:file])
294
+ raise "Failed to download #{data[:name]}" if data[:data] == '' or not @arti_download_artifact
295
+ manifest = {}
296
+ data[:data].split(/\n+/).each do |line|
297
+ k, v = line.chomp.split(/=/)
298
+ manifest[k] = v #unless man.has_key?(k)
299
+ end
300
+ man = if supman
301
+ manifest.delete(supman)
302
+ man.each do |_,m|
303
+ m.each do |k,v|
304
+ manifest[k] = v
305
+ end
306
+ end
307
+ { supman => manifest }
308
+ else
309
+ man.each do |k,v|
310
+ manifest[k] = v #unless man.has_key?(k)
311
+ end
312
+ manifest
313
+ end
314
+ data[:data] = assemble.call(man)
315
+ # Save the new file
316
+ IO.write(data[:file], data[:data])
317
+ data[:temp] = false
318
+ data[:sha1] = Digest::SHA1.file(data[:file]).hexdigest
319
+ data[:md5] = Digest::MD5.file(data[:file]).hexdigest
320
+ end
258
321
  end
322
+ man
259
323
  end
260
324
 
261
325
  # ---------------------------------------------------------------------------------------------------------------
@@ -284,7 +348,7 @@ module CiCd
284
348
  @vars[:return_code]
285
349
  end
286
350
 
287
- private :createProductManifests, :createProjectsFile, :createSuperManifest
351
+ protected :createProductManifests, :createProjectsFile, :createSuperManifest
288
352
  end
289
353
  end
290
354
  end
@@ -2,7 +2,7 @@ module CiCd
2
2
  module Builder
3
3
  module Manifest
4
4
  # manifest-builder version
5
- VERSION = '0.6.2'
5
+ VERSION = '0.6.4'
6
6
  MAJOR, MINOR, TINY = VERSION.split('.')
7
7
  PATCH = TINY
8
8
  end
@@ -17,8 +17,8 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ['lib']
19
19
 
20
- # gem.add_dependency 'cicd-builder', '>= 0.9.48', '< 1.1'
21
- gem.add_dependency 'chefrepo-builder', '>= 0.9.32', '< 1.1'
20
+ # gem.add_dependency 'cicd-builder', '>= 0.9.50', '< 1.1'
21
+ gem.add_dependency 'chefrepo-builder', '>= 0.9.34', '< 1.1'
22
22
  gem.add_dependency 'json', '>= 1.8.1', '< 1.9'
23
23
  gem.add_dependency 's3etag', '>= 0.0.1', '< 0.1.0'
24
24
  gem.add_dependency 'archive-tar-minitar', '= 0.5.2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manifest-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christo De Lange
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-28 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chefrepo-builder
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.32
19
+ version: 0.9.34
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '1.1'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.9.32
29
+ version: 0.9.34
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '1.1'