jenkins_pipeline_builder 0.9.1 → 0.9.2

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 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: