cicd-builder 0.9.32 → 0.9.33
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 +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
|