puppet-ci-testing 0.13.1 → 0.14.0

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,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 484b2ce86b7e5130c7bcfbe73de6256cfac8b8b4
4
- data.tar.gz: 5ea6821808cbe97a025e81254f0a86b719ada38c
3
+ metadata.gz: 6a15e41bb841658e3fe748133fcaa99b1dc561a8
4
+ data.tar.gz: 9afe63589635e31e960081b7aacf67ccb776a2b9
5
5
  SHA512:
6
- metadata.gz: 7c1c4c00c177060642ab1dc5286d9675c996350fca7c4b68360af57ee5714fd1831aed649abd813abf1ccbd2d007be7961fd758cb1d18c7931f666d368123b5d
7
- data.tar.gz: 5e21700cd599332f28797e53062edceb483d64bd7c87fce7d79c0ae5d0ffb444a677f0ef5fde62e04ce545f9c7f10553f0dc8ccb8fde65d8dcc9070f4084bb44
6
+ metadata.gz: fa6a0b2d99121334e809c99600d14fc3de3d0e21de37ac2b4b35b69f2d46a6d05713332cbb87b68b195be46d2c244f855618b8535a492b67d880dcade374f6cf
7
+ data.tar.gz: d69ea762c8f9da29089d8613835438bb3775aef2194fbbd56671f45a99dfe4bdde96d88fdf38f02e2146c07b2b54fb7dfcdd3509abfb5d4155cef8b7c3a18170
@@ -32,9 +32,9 @@ def create_fixtures_yml
32
32
  if dep.key? 'version_requirement'
33
33
  fix.puts " #{(dep['name'].split(/[\/\-]/))[-1]}:"
34
34
  fix.puts " repo: \"#{dep['name']}\""
35
- fix.puts " ref: \"#{dep['version_requirement'].gsub(/[=\<\>~\s]/, '')}\""
35
+ fix.puts " ref: \"#{dep['version_requirement'].gsub(/[=\<\>~\s]+([\d\.]+).*$/, '\1')}\""
36
36
  else
37
- fix.puts " #{(dep['name'].split(/\/\-/))[1]}: \"#{dep['name']}\""
37
+ fix.puts " #{(dep['name'].split(/\/\-/))[-1]}: \"#{dep['name']}\""
38
38
  end
39
39
  end
40
40
  end
@@ -84,10 +84,10 @@ EOM
84
84
  end
85
85
 
86
86
 
87
- def process_lint_parsing(opts)
87
+ def process_puppet_lint_parsing(opts)
88
88
 
89
89
  all_checks = PuppetLint.configuration.checks.map {|chk| chk.to_s}
90
- enables = opts.lint_enable || all_checks
90
+ enables = opts.puppet_lint_enable || all_checks
91
91
  disables = all_checks - enables
92
92
 
93
93
  puts <<-EOM
@@ -95,7 +95,7 @@ def process_lint_parsing(opts)
95
95
  ========================================================================
96
96
  ========================================================================
97
97
 
98
- Performing lint parsing
98
+ Performing puppet manifest lint parsing
99
99
 
100
100
  Enabled lint options:
101
101
  #{enables.join("\n ")}
@@ -109,7 +109,7 @@ EOM
109
109
  Rake::Task['lint'].clear
110
110
  PuppetLint::RakeTask.new :lint do |config|
111
111
  config.ignore_paths = ['spec/**/*.pp', 'vendor/**/*.pp']
112
- config.log_format = '%{path}:%{linenumber}:%{check}:%{KIND}:%{message}'
112
+ config.log_format = '%{path}:%{line}:%{check}:%{KIND}:%{message}'
113
113
  config.fail_on_warnings = false
114
114
  config.disable_checks = disables
115
115
  end
@@ -136,6 +136,56 @@ EOM
136
136
  end
137
137
 
138
138
 
139
+ def process_metadata_lint_parsing(opts)
140
+
141
+ all_checks = MetadataJsonLint.options.members.select {|check| check.to_s if check != :format }
142
+ enables = opts.metadata_lint_enable || all_checks
143
+ disables = all_checks - enables
144
+
145
+ puts <<-EOM
146
+
147
+ ========================================================================
148
+ ========================================================================
149
+
150
+ Performing metadata.json lint parsing
151
+
152
+ Enabled lint options:
153
+ #{enables.join("\n ")}
154
+
155
+ ************************************************************************
156
+
157
+ EOM
158
+
159
+ # configure the rake task to disable specific checks
160
+ if not disables.empty?
161
+ Rake::Task['lint'].clear
162
+ MetadataJsonLint::RakeTask.new :lint do |config|
163
+ enables.each {|check| config[check] = true }
164
+ disables.each {|check| config[check] = false }
165
+ end
166
+ end
167
+
168
+ begin
169
+ # TODO: gather lint output and generate JUnit reports
170
+ Rake.application['lint'].invoke
171
+ rescue SystemExit => e
172
+ puts <<-EOM
173
+
174
+ ************************************************************************
175
+
176
+ BUILD HAS FAILED
177
+
178
+ Correct the above metadata.json LINT errors to correct
179
+
180
+ ************************************************************************
181
+
182
+ EOM
183
+ return false
184
+ end
185
+ return true
186
+ end
187
+
188
+
139
189
  def process_rspec_tests(opts)
140
190
 
141
191
  puts <<-EOM
@@ -180,29 +230,36 @@ options = OpenStruct.new
180
230
  options.syntax_run = true
181
231
  options.syntax_checks = CheckFileSyntax::ALL_CHECKS
182
232
  options.syntax_exclude_dirs = []
183
- options.lint_run = true
184
- options.lint_enable = []
233
+ options.puppet_lint_run = true
234
+ options.puppet_lint_enable = []
235
+ options.metadata_lint_run = true
236
+ options.metadata_lint_enable = []
185
237
  options.rspec_run = true
186
238
  options.rspec_clean_sources = false
187
239
 
188
240
 
189
241
  # read in config file and set options
190
242
  defaults = YAML.load_file(CONF_FILE)
191
- defaults.keys.each do |test|
192
- opts = defaults[test]
243
+ defaults.keys.each do |test_type|
244
+ opts = defaults[test_type]
193
245
 
194
- if test == 'syntax'
246
+ if test_type == 'syntax'
195
247
  options.syntax_run = opts['run'] if opts.has_key? 'run'
196
248
  options.syntax_checks = opts['checks'] if opts.has_key? 'checks'
197
249
  options.syntax_exclude_dirs = opts['exclude_dirs'] if opts.has_key? 'exclude_dirs'
198
250
  end
199
251
 
200
- if test == 'lint'
201
- options.lint_run = opts['run'] if opts.has_key? 'run'
202
- options.lint_enable = opts['enable'] if opts.has_key? 'enable'
252
+ if test_type == 'puppet_lint'
253
+ options.puppet_lint_run = opts['run'] if opts.has_key? 'run'
254
+ options.puppet_lint_enable = opts['enable'] if opts.has_key? 'enable'
203
255
  end
204
256
 
205
- if test == 'rspec'
257
+ if test_type == 'metadata_lint'
258
+ options.metadata_lint_run = opts['run'] if opts.has_key? 'run'
259
+ options.metadata_lint_enable = opts['enable'] if opts.has_key? 'enable'
260
+ end
261
+
262
+ if test_type == 'rspec'
206
263
  options.rspec_run = opts['run'] if opts.has_key? 'run'
207
264
  options.rspec_clean_sources = opts['clean_sources'] if opts.has_key? 'clean_sources'
208
265
  end
@@ -212,8 +269,9 @@ end
212
269
 
213
270
  # process the command line options and override prev set settings
214
271
  OptionParser.new do |opts|
215
- opts.on('--[no-]lint', "Enable/disable lint parsing (Default: #{options[:lint]})") do |val|
216
- options.lint_run = val
272
+ opts.on('--[no-]lint', "Enable/disable lint parsing (Default: #{options[:puppet_lint_run]})") do |val|
273
+ options.puppet_lint_run = val
274
+ options.metadata_lint_run = val
217
275
  end
218
276
 
219
277
  opts.on('--disable-syntax-check [TYPE]', 'Disable syntax check for TYPE') do |val|
@@ -267,12 +325,17 @@ if options.syntax_run
267
325
  end
268
326
 
269
327
 
270
- if options.lint_run
271
- unless process_lint_parsing(options)
328
+ if options.puppet_lint_run
329
+ unless process_puppet_lint_parsing(options)
272
330
  exit(2)
273
331
  end
274
332
  end
275
333
 
334
+ if options.metadata_lint_run
335
+ unless process_metadata_lint_parsing(options)
336
+ exit(2)
337
+ end
338
+ end
276
339
 
277
340
  if options.rspec_run
278
341
  process_rspec_tests(options)
@@ -16,7 +16,7 @@
16
16
  - spec
17
17
  #
18
18
  # Configuration for lint parsing
19
- lint:
19
+ puppet_lint:
20
20
  run: true
21
21
  # enable turns on lint parsing options. They are puppet-lint options
22
22
  # with '--no-' and '-check' removed from the option. Not specifying
@@ -55,6 +55,13 @@
55
55
  - ensure_not_symlink_target
56
56
  - unquoted_node_name
57
57
  #
58
+ # Configuration for metadata.json linting
59
+ metadata_lint:
60
+ run: true
61
+ enable:
62
+ # - strict-dependencies
63
+ - strict-license
64
+ - fail-on-warnings
58
65
  # Configuration for RSpec unit testing
59
66
  rspec:
60
67
  run: true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-ci-testing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerard Hickey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-28 00:00:00.000000000 Z
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: metadata-json-lint
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 2.0.2
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 2.0.2
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: rake
127
141
  requirement: !ruby/object:Gem::Requirement