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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/cicd/builder/mixlib/options.rb +1 -1
- data/lib/cicd/builder/mixlib/repo/artifactory.rb +71 -26
- data/lib/cicd/builder/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75d36cb9025cf66cd01e307a37d1b8459a97a5cf
|
4
|
+
data.tar.gz: 9d82387d840c35215a7cd37102e4e84908ec78fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d77cf39a842a06f50dcc6c11b9e4c1a53ceb3e24a897bc8fea6db807427ef87d05563e8a3718d867148c0610f9b158fc67f1bd65c7057848759084bbbe0fc28
|
7
|
+
data.tar.gz: b7b47af6df74ee2ab3633e94fa93bb9b6d0849bb6b1bb1cb86c1cb46dbba6fe6ae45bad774f34461f2b55a1acc1e6d5002e6401f7f0985597c2168ec83c1e081
|
data/Gemfile.lock
CHANGED
@@ -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
|
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[:
|
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
|
-
|
113
|
-
|
115
|
+
manifest.each do |mod,man|
|
116
|
+
man.each do |k,v|
|
117
|
+
manifest_data += "#{k}=#{v}\n"
|
118
|
+
end
|
114
119
|
end
|
115
|
-
|
116
|
-
|
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] =
|
120
|
-
maybeUploadArtifactoryObject(data,
|
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.
|
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(
|
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[
|
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
|
-
|
233
|
-
|
234
|
-
|
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
|
-
|
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}"
|
data/lib/cicd/builder/version.rb
CHANGED
@@ -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.
|
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.
|
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-
|
11
|
+
date: 2015-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|