manifest-builder 0.1.5 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83925bf6560dd8be2d4f2bd5826ccad2eafc4780
4
- data.tar.gz: aac2969a139221dd051664440b12f3214d86ef1e
3
+ metadata.gz: 83f96eb0423c63a8357b5529aea9f4a1ad1ff3e1
4
+ data.tar.gz: bbe9643b6d76a6f284866bceae3acb9da4b49c60
5
5
  SHA512:
6
- metadata.gz: 8fd6bcbd0fb60c869b121115150173e97b86ec10e9bbd7d8f6a3fef334829c88aa7812057cfc757d4766a23ae6f18c5cdca363032e5f01773650ad2236aa2e57
7
- data.tar.gz: 67521166c704e5fa1f7290e5bb87a7caa6bf0cf033b47c7579d2a60ecd4a638d343d19c3949fea9c7d3bf9d5330d956a186db84060ef1790f6cb0da959b053c9
6
+ metadata.gz: d5f96204ef9df55d3687300e422a12608989bc10c2d385b609277306412dc82d4a6a21b6690b71c593909b3dbac7202f290df2d34b51f13a572e45ce5ed8d790
7
+ data.tar.gz: cdfa0ce753ddb1206a2e8dd9059772d975b003af8c4d92de974e89d698cd04dbba858527b3105041897f11cc6a70bb5f5b2016cb0b0bf271bc4df2d89e4cdf6e
data/Gemfile.lock CHANGED
@@ -1,24 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- manifest-builder (0.1.5)
5
- ansiblerepo-builder (>= 0.3.5, < 0.5)
6
- chefrepo-builder (>= 0.9.25, < 1.1)
7
- cicd-builder (>= 0.9.31, < 1.1)
4
+ manifest-builder (0.2.0)
5
+ ansiblerepo-builder (>= 0.3.6, < 0.5)
6
+ archive-tar-minitar (= 0.5.2)
7
+ chefrepo-builder (>= 0.9.26, < 1.1)
8
+ cicd-builder (>= 0.9.32, < 1.1)
8
9
  json (>= 1.8.1, < 1.9)
9
10
  s3etag (>= 0.0.1, < 0.1.0)
10
11
 
11
12
  PATH
12
13
  remote: ../chefrepo-builder
13
14
  specs:
14
- chefrepo-builder (0.9.25)
15
- cicd-builder (>= 0.9.31, < 1.1)
15
+ chefrepo-builder (0.9.26)
16
+ cicd-builder (>= 0.9.32, < 1.1)
16
17
  json (= 1.8.1)
17
18
 
18
19
  PATH
19
20
  remote: ../cicd-builder
20
21
  specs:
21
- cicd-builder (0.9.31)
22
+ cicd-builder (0.9.32)
22
23
  artifactory (>= 2.2.1, < 2.3)
23
24
  awesome_print (>= 1.6, < 2.0)
24
25
  aws-sdk (>= 2.0, < 2.1)
@@ -33,10 +34,11 @@ PATH
33
34
  GEM
34
35
  remote: https://rubygems.org/
35
36
  specs:
36
- ansiblerepo-builder (0.3.5)
37
- chefrepo-builder (>= 0.9.25, < 1.1)
38
- cicd-builder (>= 0.9.31, < 1.1)
37
+ ansiblerepo-builder (0.3.6)
38
+ chefrepo-builder (>= 0.9.26, < 1.1)
39
+ cicd-builder (>= 0.9.32, < 1.1)
39
40
  json (= 1.8.1)
41
+ archive-tar-minitar (0.5.2)
40
42
  artifactory (2.2.1)
41
43
  awesome_print (1.6.1)
42
44
  aws-sdk (2.0.28)
@@ -99,6 +99,13 @@ module CiCd
99
99
  end
100
100
  if version.empty?
101
101
  version = @vars[:build_ver]
102
+ else
103
+ uri,ver = File.split(path)
104
+ if version =~ %r'^#{ver}' and version =~ %r'^(\d+\.){3}'
105
+ build = version.dup
106
+ version = ver
107
+ build = build.gsub(%r'^#{version}(\.|-)*','')
108
+ end
102
109
  end
103
110
  if build == 0 or build.empty?
104
111
  build = @vars[:build_num]
@@ -123,6 +130,7 @@ module CiCd
123
130
  if @vars[:return_code] == 0
124
131
  lines = []
125
132
  @vars[:artifacts] = []
133
+ # Deal with all artifacts of each component
126
134
  @vars[:components].each { |comp|
127
135
  artifact, path, version, build = parseComponent(comp)
128
136
 
@@ -139,13 +147,16 @@ module CiCd
139
147
  objects << object
140
148
  end
141
149
  end
150
+ local_dir = File.join(@vars[:local_dirs]['artifacts'],comp[0], '')
151
+ Dir.mkdir(local_dir, 0700) unless File.directory?(local_dir)
152
+ artifacts = []
153
+ changed = false
154
+ # 1 or more objects on the key/ path
142
155
  if objects.size > 0
143
156
  lines << "#{comp[0]}:#{artifact} v#{version} b#{build} - #{path}"
144
157
  # When we start pulling the artifacts then everything that is build 0 get this build number, in fact all artifacts get this build number!
145
158
  objects.each do |object|
146
159
  @logger.info "\t#{object.key}"
147
- local_dir = File.join(@vars[:local_dirs]['artifacts'],comp[0], '')
148
- Dir.mkdir(local_dir, 0700) unless File.directory?(local_dir)
149
160
  local = File.join(local_dir,File.basename(object.key))
150
161
  etag = object.etag.gsub(%r/['"]/, '')
151
162
  download = if File.exists?(local)
@@ -170,12 +181,42 @@ module CiCd
170
181
  # IO.binwrite(local, body)
171
182
  @logger.info "\t\tdone"
172
183
  check = calcLocalETag(etag, local)
173
- @logger.error "\tETag different: #{etag} != #{check}" unless check == etag
184
+ unless check.eql?(etag)
185
+ @logger.info "\tETag different: #{etag} != #{check}"
186
+ changed = true
187
+ end
174
188
  else
175
189
  @logger.info "\t\tunchanged"
176
190
  end
177
- addArtifact(@vars[:artifacts], local, local_dir, { name: comp[0], build: build, version: version, file: local})
191
+ artifacts << local
178
192
  end
193
+ # The local file will be 1 artifact or an archive of the local artifacts when artifacts.size > 1
194
+ local = if artifacts.size > 0
195
+ if artifacts.size > 1
196
+ begin
197
+ require 'zlib'
198
+ require 'archive/tar/minitar'
199
+ file = File.join(local_dir, "#{comp[0]}-#{version}.tar.gz")
200
+ if changed or not File.exists?(file)
201
+ output = File.open(file, 'wb')
202
+ output = Zlib::GzipWriter.new(output, Zlib::BEST_COMPRESSION, Zlib::RLE)
203
+ Dir.chdir(local_dir) do
204
+ Archive::Tar::Minitar.pack(artifacts.map{|f| f.gsub(%r'^#{local_dir}','')}, output, false )
205
+ end
206
+ end
207
+ file
208
+ rescue Exception => e
209
+ @logger.error "Artifact error: #{file} #{e.class.name} #{e.message}"
210
+ raise e
211
+ ensure
212
+ output.close if output and not output.closed?
213
+ end
214
+ else
215
+ artifacts[0]
216
+ end
217
+ else
218
+ end
219
+ addArtifact(@vars[:artifacts], local, local_dir, { name: comp[0], build: build, version: version, file: local})
179
220
  else
180
221
  @logger.fatal "Artifact not found: s3://#{name}/#{key}#{artifact}"
181
222
  @vars[:return_code] = Errors::ARTIFACT_NOT_FOUND
@@ -2,7 +2,7 @@ module CiCd
2
2
  module Builder
3
3
  module Manifest
4
4
  # manifest-builder version
5
- VERSION = '0.1.5'
5
+ VERSION = '0.2.0'
6
6
  MAJOR, MINOR, TINY = VERSION.split('.')
7
7
  PATCH = TINY
8
8
  end
@@ -17,11 +17,13 @@ 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.31', '< 1.1'
21
- gem.add_dependency 'chefrepo-builder', '>= 0.9.25', '< 1.1'
22
- gem.add_dependency 'ansiblerepo-builder', '>= 0.3.5', '< 0.5'
20
+ gem.add_dependency 'cicd-builder', '>= 0.9.32', '< 1.1'
21
+ gem.add_dependency 'chefrepo-builder', '>= 0.9.26', '< 1.1'
22
+ gem.add_dependency 'ansiblerepo-builder', '>= 0.3.6', '< 0.5'
23
23
  gem.add_dependency 'json', '>= 1.8.1', '< 1.9'
24
24
  gem.add_dependency 's3etag', '>= 0.0.1', '< 0.1.0'
25
+ gem.add_dependency 'archive-tar-minitar', '= 0.5.2'
26
+ # gem.add_dependency 'zlib'
25
27
 
26
28
  gem.add_development_dependency 'bundler', '>= 1.7', '< 2.0'
27
29
  gem.add_development_dependency 'rake', '>= 10.3', '< 11'
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.1.5
4
+ version: 0.2.0
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-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cicd-builder
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.31
19
+ version: 0.9.32
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.31
29
+ version: 0.9.32
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '1.1'
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.9.25
39
+ version: 0.9.26
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1.1'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.9.25
49
+ version: 0.9.26
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '1.1'
@@ -56,7 +56,7 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.3.5
59
+ version: 0.3.6
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0.5'
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.3.5
69
+ version: 0.3.6
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0.5'
@@ -110,6 +110,20 @@ dependencies:
110
110
  - - "<"
111
111
  - !ruby/object:Gem::Version
112
112
  version: 0.1.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: archive-tar-minitar
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - '='
118
+ - !ruby/object:Gem::Version
119
+ version: 0.5.2
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - '='
125
+ - !ruby/object:Gem::Version
126
+ version: 0.5.2
113
127
  - !ruby/object:Gem::Dependency
114
128
  name: bundler
115
129
  requirement: !ruby/object:Gem::Requirement