jenkins_pipeline_builder 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f38707ede37d7cd86c8d3339380d76c42062c396
4
- data.tar.gz: 915368542171ac779ae9d916d9db86c1572d4979
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NzRlOGU5YTJiYmNlMTI3MjgyNjkzYWJlY2E1ZDRiYTM2ZGE0MDBlYw==
5
+ data.tar.gz: !binary |-
6
+ ZjViYWJiYjNiZGVmZGMwZTBlN2ExMTdkMWMxZmVhOGRiNjNhNzExNg==
5
7
  SHA512:
6
- metadata.gz: e763fb51fd2e587302230b4f709d80abdb7d9cc3535f1549b453aeeab3e8b2915fbc12d238ae0c870786f6b2fe6a0bf43c43924553e79d648055c6a2f0e2c4ae
7
- data.tar.gz: 6bbfa81b49e82a2a5482c783cbc857499d48a9290b88d4fefbbd80ce7ba1b37a5e9dd9bcc60b2c2035fd0bc6597b91958598b575e20a0b83ea75d354e12c7da2
8
+ metadata.gz: !binary |-
9
+ MTliYWU4ZjIwNTQyZTdiZjU2OTI4NmQwOTIxMjQ4ZDE2OWI0ODEyNzc5YTZk
10
+ NTI3MjkwNWY0M2JkMDA3MzNiYTcwNGM1ZWI3MWUwODVjOGUyYjFmMzg0YjIx
11
+ OWEzOGY5ODUzNjVmYjM4Y2U1YjMzZWE2NDFkYTFhYzEzMjRkMmQ=
12
+ data.tar.gz: !binary |-
13
+ MjU1ZDYzMjBmZmQ0ZDZmNDY3ZjZmMTg0YTlkMGI3OTQxZGU3NjYzYjU5ZTFl
14
+ YTQwMDQ4Mjk2ZjhkNTJiY2QwMmY2NmI0YmNmNzcyZWNhZjI2M2FiNmUwNTE0
15
+ NTVhNTg4ZGMwZjAzMDhhNzEzOTExYTJjNzE3ODk1ZGRlODVjMTc=
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.4
4
+ - 2.0.0
5
+ deploy:
6
+ provider: rubygems
7
+ api_key:
8
+ secure: Yx9PMXK5GhTYdRMay6AjpJ95mEkXa3+I2YXFjQGo0MnZAUmp2pqqCceJYWD499/moBAnsYRue47xyzY44G6aKwpj2F3iW8IZlp4hlMuMlqC4z5iDSW99N6MsYV/rBWSGX2/Z0dARg6ThtLHLQRulQNrHx5G8AXhLp3K/eAJPSMU=
9
+ gem: jenkins_pipeline_builder
10
+ on:
11
+ tags: true
12
+ all_branches: true
13
+ repo: constantcontact/jenkins_pipeline_builder
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  jenkins-pipeline-builder
2
2
  ========================
3
3
 
4
+ [![Build Status](https://travis-ci.org/constantcontact/jenkins_pipeline_builder.svg)](https://travis-ci.org/constantcontact/jenkins_pipeline_builder) [![Gem Version](https://badge.fury.io/rb/jenkins_pipeline_builder.svg)](http://badge.fury.io/rb/jenkins_pipeline_builder)
5
+
4
6
  YAML driven CI Jenkins Pipeline Builder enabling to version your artifact pipelines alongside with the artifact source
5
7
  itself.
6
8
 
@@ -22,6 +24,8 @@ USAGE:
22
24
 
23
25
  ### Installation
24
26
 
27
+ Ruby 2.0 or higher is required.
28
+
25
29
  Add this line to your application's Gemfile:
26
30
 
27
31
  gem 'jenkins_pipeline_builder'
@@ -42,5 +42,5 @@ automating Job & Pipeline creation from the YAML files checked-in with your appl
42
42
  spec.add_development_dependency 'yard'
43
43
  spec.add_development_dependency 'rspec_junit_formatter'
44
44
  spec.add_development_dependency 'webmock'
45
- spec.add_development_dependency 'rubocop', '>= 0.26.0'
45
+ spec.add_development_dependency 'rubocop', '= 0.26.1'
46
46
  end
@@ -44,7 +44,7 @@ module JenkinsPipelineBuilder
44
44
  (options[:password] || options[:password_base64])
45
45
  creds = options
46
46
  elsif options[:creds_file]
47
- if options[:creds_file].end_with? "json"
47
+ if options[:creds_file].end_with? 'json'
48
48
  creds = JSON.parse(IO.read(File.expand_path(options[:creds_file])))
49
49
  else
50
50
  creds = YAML.load_file(File.expand_path(options[:creds_file]))
@@ -26,14 +26,7 @@ JenkinsPipelineBuilder.registry.entries.each do |type, path|
26
26
  set = JenkinsPipelineBuilder::ExtensionSet.new
27
27
  set.instance_eval(&block)
28
28
  set.blocks.each do |version, settings|
29
- ext = JenkinsPipelineBuilder::Extension.new
30
- ext.min_version version
31
- ext.type singular_type
32
- set.settings.merge(settings).each do |key, value|
33
- ext.send key, value
34
- end
35
- ext.path path unless ext.path
36
- set.extensions << ext
29
+ set.add_extension singular_type, version, settings, path
37
30
  end
38
31
  unless set.valid?
39
32
  name = set.name || 'A plugin with no name provided'
@@ -51,13 +44,7 @@ def job_attribute(&block)
51
44
  set = JenkinsPipelineBuilder::ExtensionSet.new
52
45
  set.instance_eval(&block)
53
46
  set.blocks.each do |version, settings|
54
- ext = JenkinsPipelineBuilder::Extension.new
55
- ext.min_version version
56
- ext.type :job_attribute
57
- set.settings.merge(settings).each do |key, value|
58
- ext.send key, value
59
- end
60
- set.extensions << ext
47
+ set.add_extension :job_attribute, version, settings
61
48
  end
62
49
  unless set.valid?
63
50
  name = set.name || 'A plugin with no name provided'
@@ -100,6 +87,18 @@ module JenkinsPipelineBuilder
100
87
  @version = Gem::Version.new version
101
88
  end
102
89
 
90
+ def add_extension(type, version, settings, path = nil)
91
+ ext = JenkinsPipelineBuilder::Extension.new
92
+ ext.min_version version
93
+ ext.type type
94
+ self.settings.merge(settings).each do |key, value|
95
+ ext.send key, value
96
+ end
97
+
98
+ ext.path path unless ext.path
99
+ extensions << ext
100
+ end
101
+
103
102
  def installed_version
104
103
  return @version if @version
105
104
  reg = JenkinsPipelineBuilder.registry
@@ -114,10 +113,7 @@ module JenkinsPipelineBuilder
114
113
  # TODO: Support multiple xml sections for the native to jenkins plugins
115
114
  return extensions.first if settings[:plugin_id] == 'builtin'
116
115
 
117
- versions = extensions.each_with_object({}) do |ext, hash|
118
- hash[Gem::Version.new(ext.min_version)] = ext
119
- end
120
- versions.keys.sort!.reverse!.each do |version|
116
+ ordered_version_list.each do |version|
121
117
  return versions[version] if version <= installed_version
122
118
  end
123
119
 
@@ -198,6 +194,16 @@ module JenkinsPipelineBuilder
198
194
 
199
195
  private
200
196
 
197
+ def versions
198
+ @versions ||= extensions.each_with_object({}) do |ext, hash|
199
+ hash[Gem::Version.new(ext.min_version)] = ext
200
+ end
201
+ end
202
+
203
+ def ordered_version_list
204
+ versions.keys.sort.reverse
205
+ end
206
+
201
207
  def deprecation_warning(name, block)
202
208
  puts "WARNING: #{name} set the version in the #{block} block, this is deprecated. Please use a version block."
203
209
  end
@@ -193,7 +193,7 @@ module JenkinsPipelineBuilder
193
193
  end
194
194
  else
195
195
  logger.info "Loading file #{path}"
196
- if path.end_with? "json"
196
+ if path.end_with? 'json'
197
197
  hash = JSON.parse(IO.read(path))
198
198
  else # elsif path.end_with?("yml") || path.end_with?("yaml")
199
199
  hash = YAML.load_file(path)
@@ -21,5 +21,5 @@
21
21
  #
22
22
 
23
23
  module JenkinsPipelineBuilder
24
- VERSION = '0.9.1'
24
+ VERSION = '0.9.2'
25
25
  end
@@ -35,7 +35,7 @@ module JenkinsPipelineBuilder
35
35
  end
36
36
 
37
37
  def generate(path)
38
- if path.end_with? "json"
38
+ if path.end_with? 'json'
39
39
  hash = JSON.parse(IO.read(path))
40
40
  else
41
41
  hash = YAML.load_file(path)
@@ -153,8 +153,16 @@ describe JenkinsPipelineBuilder::Generator do
153
153
  end
154
154
 
155
155
  describe '#load_collection_from_path' do
156
- let(:project_hash) { [{"defaults"=>{"name"=>"global", "description"=>"Tests, all the tests"}}, {"project"=>{"name"=>"TestProject", "jobs"=>["{{name}}-part1"]}}] }
157
- let(:view_hash) { [{"view"=>{"name"=>"{{name}} View", "type"=>"listview", "description"=>"{{description}}", "regex"=>"{{name}}.*"}}] }
156
+ let(:project_hash) do
157
+ [{ 'defaults' => { 'name' => 'global', 'description' => 'Tests, all the tests' } },
158
+ { 'project' => { 'name' => 'TestProject', 'jobs' => ['{{name}}-part1'] } }]
159
+ end
160
+ let(:view_hash) do
161
+ [{ 'view' =>
162
+ { 'name' => '{{name}} View', 'type' => 'listview', 'description' => '{{description}}', 'regex' => '{{name}}.*' }
163
+ }]
164
+ end
165
+
158
166
  it 'loads a yaml collection from a path' do
159
167
  path = File.expand_path('../fixtures/generator_tests/test_yaml_files', __FILE__)
160
168
  expect(@generator).to receive(:load_job_collection).once.with(view_hash, false).and_return(true)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jenkins_pipeline_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Moochnick
@@ -43,42 +43,42 @@ dependencies:
43
43
  name: thor
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ! '>='
47
47
  - !ruby/object:Gem::Version
48
48
  version: 0.18.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ! '>='
54
54
  - !ruby/object:Gem::Version
55
55
  version: 0.18.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: activesupport
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ! '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ! '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: archive-tar-minitar
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ! '>='
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ! '>='
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
@@ -99,14 +99,14 @@ dependencies:
99
99
  name: rake
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - '>='
102
+ - - ! '>='
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '>='
109
+ - - ! '>='
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
@@ -127,187 +127,189 @@ dependencies:
127
127
  name: bump
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - '>='
130
+ - - ! '>='
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - '>='
137
+ - - ! '>='
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: json
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - '>='
144
+ - - ! '>='
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - '>='
151
+ - - ! '>='
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: gem-release
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - '>='
158
+ - - ! '>='
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - '>='
165
+ - - ! '>='
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: pry
170
170
  requirement: !ruby/object:Gem::Requirement
171
171
  requirements:
172
- - - '>='
172
+ - - ! '>='
173
173
  - !ruby/object:Gem::Version
174
174
  version: '0'
175
175
  type: :development
176
176
  prerelease: false
177
177
  version_requirements: !ruby/object:Gem::Requirement
178
178
  requirements:
179
- - - '>='
179
+ - - ! '>='
180
180
  - !ruby/object:Gem::Version
181
181
  version: '0'
182
182
  - !ruby/object:Gem::Dependency
183
183
  name: simplecov
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - '>='
186
+ - - ! '>='
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  type: :development
190
190
  prerelease: false
191
191
  version_requirements: !ruby/object:Gem::Requirement
192
192
  requirements:
193
- - - '>='
193
+ - - ! '>='
194
194
  - !ruby/object:Gem::Version
195
195
  version: '0'
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: simplecov-rcov
198
198
  requirement: !ruby/object:Gem::Requirement
199
199
  requirements:
200
- - - '>='
200
+ - - ! '>='
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
203
  type: :development
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
- - - '>='
207
+ - - ! '>='
208
208
  - !ruby/object:Gem::Version
209
209
  version: '0'
210
210
  - !ruby/object:Gem::Dependency
211
211
  name: kwalify
212
212
  requirement: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - '>='
214
+ - - ! '>='
215
215
  - !ruby/object:Gem::Version
216
216
  version: '0'
217
217
  type: :development
218
218
  prerelease: false
219
219
  version_requirements: !ruby/object:Gem::Requirement
220
220
  requirements:
221
- - - '>='
221
+ - - ! '>='
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: equivalent-xml
226
226
  requirement: !ruby/object:Gem::Requirement
227
227
  requirements:
228
- - - '>='
228
+ - - ! '>='
229
229
  - !ruby/object:Gem::Version
230
230
  version: '0'
231
231
  type: :development
232
232
  prerelease: false
233
233
  version_requirements: !ruby/object:Gem::Requirement
234
234
  requirements:
235
- - - '>='
235
+ - - ! '>='
236
236
  - !ruby/object:Gem::Version
237
237
  version: '0'
238
238
  - !ruby/object:Gem::Dependency
239
239
  name: yard-thor
240
240
  requirement: !ruby/object:Gem::Requirement
241
241
  requirements:
242
- - - '>='
242
+ - - ! '>='
243
243
  - !ruby/object:Gem::Version
244
244
  version: '0'
245
245
  type: :development
246
246
  prerelease: false
247
247
  version_requirements: !ruby/object:Gem::Requirement
248
248
  requirements:
249
- - - '>='
249
+ - - ! '>='
250
250
  - !ruby/object:Gem::Version
251
251
  version: '0'
252
252
  - !ruby/object:Gem::Dependency
253
253
  name: yard
254
254
  requirement: !ruby/object:Gem::Requirement
255
255
  requirements:
256
- - - '>='
256
+ - - ! '>='
257
257
  - !ruby/object:Gem::Version
258
258
  version: '0'
259
259
  type: :development
260
260
  prerelease: false
261
261
  version_requirements: !ruby/object:Gem::Requirement
262
262
  requirements:
263
- - - '>='
263
+ - - ! '>='
264
264
  - !ruby/object:Gem::Version
265
265
  version: '0'
266
266
  - !ruby/object:Gem::Dependency
267
267
  name: rspec_junit_formatter
268
268
  requirement: !ruby/object:Gem::Requirement
269
269
  requirements:
270
- - - '>='
270
+ - - ! '>='
271
271
  - !ruby/object:Gem::Version
272
272
  version: '0'
273
273
  type: :development
274
274
  prerelease: false
275
275
  version_requirements: !ruby/object:Gem::Requirement
276
276
  requirements:
277
- - - '>='
277
+ - - ! '>='
278
278
  - !ruby/object:Gem::Version
279
279
  version: '0'
280
280
  - !ruby/object:Gem::Dependency
281
281
  name: webmock
282
282
  requirement: !ruby/object:Gem::Requirement
283
283
  requirements:
284
- - - '>='
284
+ - - ! '>='
285
285
  - !ruby/object:Gem::Version
286
286
  version: '0'
287
287
  type: :development
288
288
  prerelease: false
289
289
  version_requirements: !ruby/object:Gem::Requirement
290
290
  requirements:
291
- - - '>='
291
+ - - ! '>='
292
292
  - !ruby/object:Gem::Version
293
293
  version: '0'
294
294
  - !ruby/object:Gem::Dependency
295
295
  name: rubocop
296
296
  requirement: !ruby/object:Gem::Requirement
297
297
  requirements:
298
- - - '>='
298
+ - - '='
299
299
  - !ruby/object:Gem::Version
300
- version: 0.26.0
300
+ version: 0.26.1
301
301
  type: :development
302
302
  prerelease: false
303
303
  version_requirements: !ruby/object:Gem::Requirement
304
304
  requirements:
305
- - - '>='
305
+ - - '='
306
306
  - !ruby/object:Gem::Version
307
- version: 0.26.0
308
- description: |-
309
- This is a simple and easy-to-use Jenkins Pipeline generator with features focused on
310
- automating Job & Pipeline creation from the YAML files checked-in with your application source code
307
+ version: 0.26.1
308
+ description: ! 'This is a simple and easy-to-use Jenkins Pipeline generator with features
309
+ focused on
310
+
311
+ automating Job & Pipeline creation from the YAML files checked-in with your application
312
+ source code'
311
313
  email:
312
314
  - igor.moochnick@gmail.com
313
315
  - crimsonknave@gmail.com
@@ -323,6 +325,7 @@ files:
323
325
  - .ruby-gemset
324
326
  - .ruby-version
325
327
  - .simplecov
328
+ - .travis.yml
326
329
  - Gemfile
327
330
  - LICENSE
328
331
  - README.md
@@ -398,17 +401,17 @@ require_paths:
398
401
  - lib
399
402
  required_ruby_version: !ruby/object:Gem::Requirement
400
403
  requirements:
401
- - - '>='
404
+ - - ! '>='
402
405
  - !ruby/object:Gem::Version
403
406
  version: '0'
404
407
  required_rubygems_version: !ruby/object:Gem::Requirement
405
408
  requirements:
406
- - - '>='
409
+ - - ! '>='
407
410
  - !ruby/object:Gem::Version
408
411
  version: '0'
409
412
  requirements: []
410
413
  rubyforge_project:
411
- rubygems_version: 2.1.9
414
+ rubygems_version: 2.4.2
412
415
  signing_key:
413
416
  specification_version: 4
414
417
  summary: This gem is will boostrap your Jenkins pipelines
@@ -446,4 +449,3 @@ test_files:
446
449
  - spec/lib/jenkins_pipeline_builder/utils_spec.rb
447
450
  - spec/lib/jenkins_pipeline_builder/view_spec.rb
448
451
  - spec/requests/pipeline_spec.rb
449
- has_rdoc: