cicd-builder 0.9.23 → 0.9.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +136 -0
- data/cicd-builder.gemspec +14 -12
- data/lib/cicd/builder.rb +23 -20
- data/lib/cicd/builder/mixlib/build.rb +144 -69
- data/lib/cicd/builder/mixlib/environment.rb +51 -17
- data/lib/cicd/builder/mixlib/errors.rb +35 -0
- data/lib/cicd/builder/mixlib/options.rb +14 -8
- data/lib/cicd/builder/mixlib/repo.rb +42 -383
- data/lib/cicd/builder/mixlib/repo/S3.rb +355 -0
- data/lib/cicd/builder/mixlib/repo/artifactory.rb +237 -0
- data/lib/cicd/builder/mixlib/repo/base.rb +102 -0
- data/lib/cicd/builder/mixlib/utils.rb +11 -1
- data/lib/cicd/builder/version.rb +1 -1
- metadata +132 -16
@@ -0,0 +1,102 @@
|
|
1
|
+
# require 'delegate'
|
2
|
+
require 'forwardable'
|
3
|
+
|
4
|
+
module CiCd
|
5
|
+
module Builder
|
6
|
+
module Repo
|
7
|
+
|
8
|
+
class Base
|
9
|
+
extend ::Forwardable
|
10
|
+
|
11
|
+
attr_reader :builder
|
12
|
+
|
13
|
+
def_delegators :@builder, :options, :vars, :logger, :getBuilderVersion, :calcLocalETag
|
14
|
+
|
15
|
+
# ---------------------------------------------------------------------------------------------------------------
|
16
|
+
def initialize(builder)
|
17
|
+
@builder = builder
|
18
|
+
@vars = vars()
|
19
|
+
@logger = logger()
|
20
|
+
@options = options()
|
21
|
+
end
|
22
|
+
|
23
|
+
# ---------------------------------------------------------------------------------------------------------------
|
24
|
+
def getKey
|
25
|
+
key = "#{@vars[:project_name]}/#{@vars[:variant]}/#{@vars[:build_nam]}/#{@vars[:build_nmn]}"
|
26
|
+
end
|
27
|
+
|
28
|
+
# ---------------------------------------------------------------------------------------------------------------
|
29
|
+
def tempArtifactFile(name,data)
|
30
|
+
io = Tempfile.new(name)
|
31
|
+
data[:temp] = true
|
32
|
+
io.write(data[:data])
|
33
|
+
io.close
|
34
|
+
data[:file] = io.path
|
35
|
+
end
|
36
|
+
|
37
|
+
# ---------------------------------------------------------------------------------------------------------------
|
38
|
+
def initInventory()
|
39
|
+
|
40
|
+
hash =
|
41
|
+
{
|
42
|
+
id: "#{@vars[:project_name]}",
|
43
|
+
# In case future generations introduce incompatible features
|
44
|
+
gen: "#{@options[:gen]}",
|
45
|
+
container: {
|
46
|
+
artifacts: %w(assembly metainfo checksum),
|
47
|
+
naming: '<product>-<major>.<minor>.<patch>-<branch>-release-<number>-build-<number>.<extension>',
|
48
|
+
assembly: {
|
49
|
+
extension: 'tar.gz',
|
50
|
+
type: 'targz'
|
51
|
+
},
|
52
|
+
metainfo: {
|
53
|
+
extension: 'MANIFEST.json',
|
54
|
+
type: 'json'
|
55
|
+
},
|
56
|
+
checksum: {
|
57
|
+
extension: 'checksum',
|
58
|
+
type: 'Digest::SHA256'
|
59
|
+
},
|
60
|
+
variants: {
|
61
|
+
:"#{@vars[:variant]}" => {
|
62
|
+
latest: {
|
63
|
+
build: 0,
|
64
|
+
branch: 0,
|
65
|
+
version: 0,
|
66
|
+
release: 0,
|
67
|
+
},
|
68
|
+
versions: [ "#{@vars[:build_ver]}" ],
|
69
|
+
branches: [ "#{@vars[:build_bra]}" ],
|
70
|
+
builds: [
|
71
|
+
{
|
72
|
+
drawer: @vars[:build_nam],
|
73
|
+
build_name: @vars[:build_nmn],
|
74
|
+
build_number: @vars[:build_num],
|
75
|
+
release: @vars[:release],
|
76
|
+
}
|
77
|
+
],
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
artifacts = getArtifactsDefinition()
|
83
|
+
naming = getNamingDefinition()
|
84
|
+
|
85
|
+
# By default we use the internal definition ...
|
86
|
+
if artifacts
|
87
|
+
artifacts.each do |name,artifact|
|
88
|
+
hash[:container][name] = artifact
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# By default we use the internal definition ...
|
93
|
+
if naming
|
94
|
+
hash[:container][:naming] = naming
|
95
|
+
end
|
96
|
+
JSON.pretty_generate( hash, { indent: "\t", space: ' '})
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -23,5 +23,15 @@ module CiCd
|
|
23
23
|
down
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
# ---------------------------------------------------------------------------------------------------------------
|
27
|
+
def addArtifact(artifacts, script, prefix, opts = {})
|
28
|
+
key = "#{@vars[:project_name]}/#{@vars[:variant]}/#{@vars[:build_nam]}/#{script.gsub(%r|^#{prefix}|, '')}"
|
29
|
+
# Store the artifact - be sure to inherit possible overrides in pkg name and ext but dictate the drawer!
|
30
|
+
artifacts << {
|
31
|
+
key: key,
|
32
|
+
data: {:file => script}.merge(opts),
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
27
37
|
end
|
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.25'
|
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.25
|
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:
|
11
|
+
date: 2015-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.2.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.3'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,34 +27,49 @@ dependencies:
|
|
24
27
|
- - '='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 1.2.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.3'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: inifile
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
39
|
+
version: 3.0.0
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '3.1'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
47
|
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
49
|
+
version: 3.0.0
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '3.1'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: logging
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
57
|
- - ">="
|
46
58
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
59
|
+
version: 1.8.2
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.9'
|
48
63
|
type: :runtime
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
52
67
|
- - ">="
|
53
68
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
69
|
+
version: 1.8.2
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '1.9'
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: json
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,6 +77,9 @@ dependencies:
|
|
59
77
|
- - '='
|
60
78
|
- !ruby/object:Gem::Version
|
61
79
|
version: 1.8.1
|
80
|
+
- - "<"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.9'
|
62
83
|
type: :runtime
|
63
84
|
prerelease: false
|
64
85
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -66,34 +87,49 @@ dependencies:
|
|
66
87
|
- - '='
|
67
88
|
- !ruby/object:Gem::Version
|
68
89
|
version: 1.8.1
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '1.9'
|
69
93
|
- !ruby/object:Gem::Dependency
|
70
94
|
name: chef
|
71
95
|
requirement: !ruby/object:Gem::Requirement
|
72
96
|
requirements:
|
73
97
|
- - ">="
|
74
98
|
- !ruby/object:Gem::Version
|
75
|
-
version: 11.
|
99
|
+
version: 11.18.2
|
100
|
+
- - "<"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '12'
|
76
103
|
type: :runtime
|
77
104
|
prerelease: false
|
78
105
|
version_requirements: !ruby/object:Gem::Requirement
|
79
106
|
requirements:
|
80
107
|
- - ">="
|
81
108
|
- !ruby/object:Gem::Version
|
82
|
-
version: 11.
|
109
|
+
version: 11.18.2
|
110
|
+
- - "<"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '12'
|
83
113
|
- !ruby/object:Gem::Dependency
|
84
114
|
name: aws-sdk
|
85
115
|
requirement: !ruby/object:Gem::Requirement
|
86
116
|
requirements:
|
87
117
|
- - ">="
|
88
118
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
119
|
+
version: '2.0'
|
120
|
+
- - "<"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '2.1'
|
90
123
|
type: :runtime
|
91
124
|
prerelease: false
|
92
125
|
version_requirements: !ruby/object:Gem::Requirement
|
93
126
|
requirements:
|
94
127
|
- - ">="
|
95
128
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
129
|
+
version: '2.0'
|
130
|
+
- - "<"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '2.1'
|
97
133
|
- !ruby/object:Gem::Dependency
|
98
134
|
name: yajl-ruby
|
99
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +137,9 @@ dependencies:
|
|
101
137
|
- - ">="
|
102
138
|
- !ruby/object:Gem::Version
|
103
139
|
version: 1.2.1
|
140
|
+
- - "<"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '1.3'
|
104
143
|
type: :runtime
|
105
144
|
prerelease: false
|
106
145
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -108,6 +147,9 @@ dependencies:
|
|
108
147
|
- - ">="
|
109
148
|
- !ruby/object:Gem::Version
|
110
149
|
version: 1.2.1
|
150
|
+
- - "<"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '1.3'
|
111
153
|
- !ruby/object:Gem::Dependency
|
112
154
|
name: git
|
113
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,6 +157,9 @@ dependencies:
|
|
115
157
|
- - ">="
|
116
158
|
- !ruby/object:Gem::Version
|
117
159
|
version: 1.2.7
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '1.3'
|
118
163
|
type: :runtime
|
119
164
|
prerelease: false
|
120
165
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,48 +167,109 @@ dependencies:
|
|
122
167
|
- - ">="
|
123
168
|
- !ruby/object:Gem::Version
|
124
169
|
version: 1.2.7
|
170
|
+
- - "<"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '1.3'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: semverse
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 1.2.1
|
180
|
+
- - "<"
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '1.3'
|
183
|
+
type: :runtime
|
184
|
+
prerelease: false
|
185
|
+
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 1.2.1
|
190
|
+
- - "<"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '1.3'
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: artifactory
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 2.2.1
|
200
|
+
- - "<"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '2.3'
|
203
|
+
type: :runtime
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ">="
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 2.2.1
|
210
|
+
- - "<"
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '2.3'
|
125
213
|
- !ruby/object:Gem::Dependency
|
126
214
|
name: bundler
|
127
215
|
requirement: !ruby/object:Gem::Requirement
|
128
216
|
requirements:
|
129
|
-
- - "
|
217
|
+
- - ">="
|
130
218
|
- !ruby/object:Gem::Version
|
131
219
|
version: '1.6'
|
220
|
+
- - "<"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '1.7'
|
132
223
|
type: :development
|
133
224
|
prerelease: false
|
134
225
|
version_requirements: !ruby/object:Gem::Requirement
|
135
226
|
requirements:
|
136
|
-
- - "
|
227
|
+
- - ">="
|
137
228
|
- !ruby/object:Gem::Version
|
138
229
|
version: '1.6'
|
230
|
+
- - "<"
|
231
|
+
- !ruby/object:Gem::Version
|
232
|
+
version: '1.7'
|
139
233
|
- !ruby/object:Gem::Dependency
|
140
234
|
name: rake
|
141
235
|
requirement: !ruby/object:Gem::Requirement
|
142
236
|
requirements:
|
143
|
-
- - "
|
237
|
+
- - ">="
|
144
238
|
- !ruby/object:Gem::Version
|
145
239
|
version: '10.3'
|
240
|
+
- - "<"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: '11'
|
146
243
|
type: :development
|
147
244
|
prerelease: false
|
148
245
|
version_requirements: !ruby/object:Gem::Requirement
|
149
246
|
requirements:
|
150
|
-
- - "
|
247
|
+
- - ">="
|
151
248
|
- !ruby/object:Gem::Version
|
152
249
|
version: '10.3'
|
250
|
+
- - "<"
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '11'
|
153
253
|
- !ruby/object:Gem::Dependency
|
154
254
|
name: rubygems-tasks
|
155
255
|
requirement: !ruby/object:Gem::Requirement
|
156
256
|
requirements:
|
157
|
-
- - "
|
257
|
+
- - ">="
|
158
258
|
- !ruby/object:Gem::Version
|
159
259
|
version: '0.2'
|
260
|
+
- - "<"
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '1.1'
|
160
263
|
type: :development
|
161
264
|
prerelease: false
|
162
265
|
version_requirements: !ruby/object:Gem::Requirement
|
163
266
|
requirements:
|
164
|
-
- - "
|
267
|
+
- - ">="
|
165
268
|
- !ruby/object:Gem::Version
|
166
269
|
version: '0.2'
|
270
|
+
- - "<"
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '1.1'
|
167
273
|
- !ruby/object:Gem::Dependency
|
168
274
|
name: cucumber
|
169
275
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,6 +277,9 @@ dependencies:
|
|
171
277
|
- - ">="
|
172
278
|
- !ruby/object:Gem::Version
|
173
279
|
version: 0.10.7
|
280
|
+
- - "<"
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '0.11'
|
174
283
|
type: :development
|
175
284
|
prerelease: false
|
176
285
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -178,6 +287,9 @@ dependencies:
|
|
178
287
|
- - ">="
|
179
288
|
- !ruby/object:Gem::Version
|
180
289
|
version: 0.10.7
|
290
|
+
- - "<"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0.11'
|
181
293
|
description: Jenkins builder task for CI/CD
|
182
294
|
email: rubygems@dldinternet.com
|
183
295
|
executables: []
|
@@ -189,6 +301,7 @@ files:
|
|
189
301
|
- ".ruby-version"
|
190
302
|
- ChangeLog.md
|
191
303
|
- Gemfile
|
304
|
+
- Gemfile.lock
|
192
305
|
- LICENSE
|
193
306
|
- LICENSE.txt
|
194
307
|
- README.md
|
@@ -207,6 +320,9 @@ files:
|
|
207
320
|
- lib/cicd/builder/mixlib/errors.rb
|
208
321
|
- lib/cicd/builder/mixlib/options.rb
|
209
322
|
- lib/cicd/builder/mixlib/repo.rb
|
323
|
+
- lib/cicd/builder/mixlib/repo/S3.rb
|
324
|
+
- lib/cicd/builder/mixlib/repo/artifactory.rb
|
325
|
+
- lib/cicd/builder/mixlib/repo/base.rb
|
210
326
|
- lib/cicd/builder/mixlib/utils.rb
|
211
327
|
- lib/cicd/builder/version.rb
|
212
328
|
homepage: https://rubygems.org/gems/cicd-builder
|