cicd-builder 0.9.32 → 0.9.33

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: 3d5b439d8599dc11343c4a867ba4395425a5bc2f
4
- data.tar.gz: c179de346efe4964da6bfa8a88f11eb03fa52fad
3
+ metadata.gz: 75d36cb9025cf66cd01e307a37d1b8459a97a5cf
4
+ data.tar.gz: 9d82387d840c35215a7cd37102e4e84908ec78fc
5
5
  SHA512:
6
- metadata.gz: 48e143c0e1d50ab196f574b0fd7981b53dfc95d6ad7f4bcb9df48ce591b706c3c13de2ae19e80609b4944d002977091696c79f89df585945ec76b27306adca46
7
- data.tar.gz: a5e8d8f8482081068b22d2e2412730514b8930847657fca4f8d1d2ecbd6960d3feb0b3e4a9066494adaa8fca88055bf82c542a913db0f74c2c0b840eb2295c4d
6
+ metadata.gz: 0d77cf39a842a06f50dcc6c11b9e4c1a53ceb3e24a897bc8fea6db807427ef87d05563e8a3718d867148c0610f9b158fc67f1bd65c7057848759084bbbe0fc28
7
+ data.tar.gz: b7b47af6df74ee2ab3633e94fa93bb9b6d0849bb6b1bb1cb86c1cb46dbba6fe6ae45bad774f34461f2b55a1acc1e6d5002e6401f7f0985597c2168ec83c1e081
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cicd-builder (0.9.32)
4
+ cicd-builder (0.9.33)
5
5
  artifactory (>= 2.2.1, < 2.3)
6
6
  awesome_print (>= 1.6, < 2.0)
7
7
  aws-sdk (>= 2.0, < 2.1)
@@ -51,7 +51,7 @@ module CiCd
51
51
  # }
52
52
  ini = IniFile.load(@options[:inifile])
53
53
  ini['global'].each{ |key,value|
54
- ENV[key]=value
54
+ ENV[key]=value.to_s
55
55
  }
56
56
  def _expand(k,v,regex,rerun)
57
57
  matches = v.match(regex)
@@ -87,41 +87,63 @@ module CiCd
87
87
  else
88
88
  raise 'Artifact does not have file or data?'
89
89
  end
90
- file_name = File.basename(data[:file])
91
- if file_name =~ %r'^#{data[:name]}'
92
- file_name.gsub!(%r'^#{data[:name]}\.*','')
93
- end
94
- file_name.gsub!(%r'\.*-*#{data[:version]}','')
95
- file_name.gsub!(%r'\.*-*#{data[:build]}-*','')
96
- file_ext = file_name.dup
97
- file_ext.gsub!(%r'^.*?\.*(tar\.gz|tgz|tar\.bzip2|bzip2|tar\.bz2|bz2|jar|war|groovy)$','\1')
98
- unless file_ext.empty?
99
- file_name.gsub!(%r'\.*#{file_ext}$','')
100
- end
90
+ file_name, file_ext = get_artifact_file_name_ext(data)
101
91
  if file_name =~ %r'\.+'
102
92
  raise "Unable to parse out file name in #{data[:file]}"
103
93
  end
104
94
  unless file_name.empty?
105
95
  file_name = '_'+file_name.gsub(%r'^(\.|-|)(\w)', '\2').gsub(%r'(\.|-)+', '_')
106
96
  end
107
- maybeUploadArtifactoryObject(data, data[:name], data[:version] || @vars[:version], file_ext, file_name) # -#{@vars[:variant]
97
+ maybeUploadArtifactoryObject(data, data[:module], data[:version] || @vars[:version], file_ext, file_name) # -#{@vars[:variant]
108
98
  break unless @vars[:return_code] == 0
109
99
  }
110
100
  if @vars[:return_code] == 0
101
+ manifest = @manifest.dup
102
+ manifest.each do |mod,man|
103
+ manifest_data = ''
104
+ man.each do |k,v|
105
+ manifest_data += "#{k}=#{v}\n"
106
+ end
107
+ data = { module: mod, data: manifest_data, version: @vars[:build_ver], build: @vars[:build_num], properties: @properties_matrix }
108
+ tempArtifactFile("#{mod}-manifest", data)
109
+ data[:sha1] = Digest::SHA1.file(data[:file]).hexdigest
110
+ data[:md5 ] = Digest::MD5.file(data[:file]).hexdigest
111
+ data[:name] = "#{mod}-manifest"
112
+ maybeUploadArtifactoryObject(data, data[:name], data[:version] || @vars[:version], 'properties', '') # -#{@vars[:variant]}
113
+ end
111
114
  manifest_data = ''
112
- @manifest.each do |k,v|
113
- manifest_data += "#{k}=#{v}\n"
115
+ manifest.each do |mod,man|
116
+ man.each do |k,v|
117
+ manifest_data += "#{k}=#{v}\n"
118
+ end
114
119
  end
115
- data = { data: manifest_data, version: @vars[:build_ver], build: @vars[:build_num], properties: @properties_matrix }
116
- tempArtifactFile('manifest', data)
120
+ amn = artifactory_manifest_name # Just using a local iso invoking method_missing repeatedly ... ;)
121
+ data = { module: amn, data: manifest_data, version: @vars[:build_ver], build: @vars[:build_num], properties: @properties_matrix }
122
+ tempArtifactFile(amn, data)
117
123
  data[:sha1] = Digest::SHA1.file(data[:file]).hexdigest
118
124
  data[:md5 ] = Digest::MD5.file(data[:file]).hexdigest
119
- data[:name] = artifactory_manifest_name
120
- maybeUploadArtifactoryObject(data, artifactory_manifest_name, data[:version] || @vars[:version], 'properties', '') # -#{@vars[:variant]}
125
+ data[:name] = amn
126
+ maybeUploadArtifactoryObject(data, amn, data[:version] || @vars[:version], 'properties', '') # -#{@vars[:variant]}
127
+ @manifest = manifest
121
128
  end
122
129
  @vars[:return_code]
123
130
  end
124
131
 
132
+ def get_artifact_file_name_ext(data)
133
+ file_name = File.basename(data[:file])
134
+ if file_name =~ %r'^#{data[:name]}'
135
+ file_name.gsub!(%r'^#{data[:name]}\.*', '')
136
+ end
137
+ file_name.gsub!(%r'\.*-*#{data[:version]}', '')
138
+ file_name.gsub!(%r'\.*-*#{data[:build]}-*', '')
139
+ file_ext = file_name.dup
140
+ file_ext.gsub!(%r'^.*?\.*(tar\.gz|tgz|tar\.bzip2|bzip2|tar\.bz2|bz2|zip|jar|war|groovy)$', '\1')
141
+ unless file_ext.empty?
142
+ file_name.gsub!(%r'\.*#{file_ext}$', '')
143
+ end
144
+ return file_name, file_ext
145
+ end
146
+
125
147
  def maybeUploadArtifactoryObject(data, artifact_module, artifact_version, file_ext, file_name)
126
148
  artifact_name = getArtifactName(data[:name], file_name, artifact_version, file_ext) # artifact_path = "#{artifactory_org_path()}/#{data[:name]}/#{data[:version]}-#{@vars[:variant]}/#{artifact_name}"
127
149
  artifact_path = getArtifactPath(artifact_module, artifact_version, artifact_name)
@@ -132,7 +154,7 @@ module CiCd
132
154
  upload = true
133
155
  else
134
156
  @logger.info "#{artifactory_endpoint()}/#{artifactory_repo()}/#{artifact_path} exists - #{objects.size} results"
135
- @logger.info "\t#{objects.map{|o| o.attributes[:uri]}.join("\t")}"
157
+ @logger.info "\t#{objects.map{|o| o.attributes[:uri]}.join("\n\t")}"
136
158
  matched = matchArtifactoryObjects(artifact_path, data, objects)
137
159
  upload ||= (matched.size == 0)
138
160
  end
@@ -148,12 +170,16 @@ module CiCd
148
170
  @logger.info "Keep existing #{matched.map{|o| o.attributes[:uri]}.join("\t")}"
149
171
  end
150
172
  if data[:temp]
151
- File.unlink(data[:file])
173
+ if File.exists?(data[:file])
174
+ File.unlink(data[:file]) if File.exists?(data[:file])
175
+ else
176
+ @logger.warn "Temporary file disappeared: #{data.ai}"
177
+ end
152
178
  end
153
179
  @vars[:return_code] = Errors::ARTIFACT_NOT_UPLOADED unless matched.size > 0
154
180
  if @vars[:return_code] == 0
155
181
  artifact_version += "-#{data[:build] || @vars[:build_num]}"
156
- artifact_name = getArtifactName(artifact_module, file_name, artifact_version, file_ext, )
182
+ artifact_name = getArtifactName(data[:name], file_name, artifact_version, file_ext, )
157
183
  artifact_path = getArtifactPath(artifact_module, artifact_version, artifact_name)
158
184
  copies = maybeArtifactoryObject(artifact_module, artifact_version, false)
159
185
  matched = matchArtifactoryObjects(artifact_path, data, copies)
@@ -169,7 +195,18 @@ module CiCd
169
195
  else
170
196
  @logger.info "Keep existing #{matched.map{|o| o.attributes[:uri]}.join("\t")}"
171
197
  end
172
- @manifest[data[:name]] = artifact_version
198
+ if @manifest[artifact_module].nil?
199
+ @manifest[artifact_module] = {}
200
+ file_name = artifact_module
201
+ else
202
+ file_name, _ = get_artifact_file_name_ext(data)
203
+ if file_name.empty?
204
+ file_name = artifact_module
205
+ else
206
+ file_name = "#{artifact_module}#{file_name}"
207
+ end
208
+ end
209
+ @manifest[artifact_module][file_name] = artifact_version
173
210
  end
174
211
 
175
212
  @vars[:return_code]
@@ -229,9 +266,13 @@ module CiCd
229
266
  @logger.info "[#{Time.now.strftime('%Y-%m-%d %H:%M:%S %z')}] Uploaded: #{result.attributes.select { |k, _| k != :client }.ai}"
230
267
  artifact.upload_checksum(artifactory_repo(), "#{artifact_path}", :sha1, data[:sha1])
231
268
  artifact.upload_checksum(artifactory_repo(), "#{artifact_path}", :md5, data[:md5])
232
- objects = maybeArtifactoryObject(artifact_module, artifact_version, false)
233
- unless objects.size > 0
234
- objects = maybeArtifactoryObject(artifact_module, artifact_version, true)
269
+ attempt = 0
270
+ objects = []
271
+ while attempt < 3
272
+ objects = maybeArtifactoryObject(artifact_module, artifact_version, false)
273
+ break if objects.size > 0
274
+ sleep 2
275
+ attempt += 1
235
276
  end
236
277
  raise "Failed to upload '#{artifact_path}'" unless objects.size > 0
237
278
  objects
@@ -247,7 +288,11 @@ module CiCd
247
288
  @logger.info "[#{Time.now.strftime('%Y-%m-%d %H:%M:%S %z')}] Copied: #{result.ai}"
248
289
  end
249
290
  objects = maybeArtifactoryObject(artifact_module, artifact_version, false)
250
- raise "Failed to copy '#{artifact_path}'" unless objects.size > 0
291
+ unless objects.size > 0
292
+ sleep 10
293
+ objects = maybeArtifactoryObject(artifact_module, artifact_version, false)
294
+ raise "Failed to copy '#{artifact_path}'" unless objects.size > 0
295
+ end
251
296
  objects
252
297
  rescue Exception => e
253
298
  @logger.error "Failed to copy #{artifact_path}: #{e.class.name} #{e.message}"
@@ -4,7 +4,7 @@ module CiCd
4
4
  # file = File.expand_path("#{File.dirname(__FILE__)}/../../../VERSION")
5
5
  # lines = File.readlines(file)
6
6
  # version = lines[0]
7
- version = '0.9.32'
7
+ version = '0.9.33'
8
8
  VERSION = version unless const_defined?('VERSION')
9
9
  major, minor, tiny = VERSION.split('.')
10
10
  MAJOR = major unless const_defined?('MAJOR')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cicd-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.32
4
+ version: 0.9.33
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-03 00:00:00.000000000 Z
11
+ date: 2015-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print