dots/Rakefile
2017-05-07 16:57:16 -07:00

65 lines
1.6 KiB
Ruby

require 'rubocop/rake_task'
require 'rubygems'
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
require 'yamllint/rake_task'
exclude_paths = [
'pkg/**/*',
'vendor/**/*',
'spec/**/*'
]
RuboCop::RakeTask.new
RuboCop::RakeTask.new(:rubocop) do |task|
# task.patterns = ['lib/**/*.rb']
# only show the files with failures
# task.formatters = ['files']
# don't abort rake on failure
# task.fail_on_error = false
end
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.ignore_paths = exclude_paths
PuppetLint.configuration.log_format =
'%{path}:%{linenumber}:%{check}:%{KIND}:%{message}'
PuppetSyntax.exclude_paths = exclude_paths
desc 'Validate manifests, templates, and ruby files'
task :validate do
Dir['puppet/manifests/**/*.pp',
'puppet/site/*/manifests/**/*.pp'].each do |manifest|
sh "puppet parser validate --noop #{manifest}"
end
Dir['bin/**/*.rb',
'spec/**/*.rb'].each do |ruby_file|
# rubocop:disable RegexpLiteral
sh "ruby -c #{ruby_file}" unless ruby_file =~ /spec\/fixtures/
# rubocop:enable RegexpLiteral
end
Dir['puppet/site/*/templates/**/*.erb'].each do |template|
sh "erb -P -x -T '-' #{template} | ruby -c"
end
end
YamlLint::RakeTask.new do |yamllint|
yamllint.paths = %w[
.*.yaml
.*.yml
*.yaml
*.yml
copy/**/*.yml
link/**/*.yml
puppet/hieradata/**/*.yml
puppet/hieradata/**/*.yaml
]
end
task :tests do
Rake::Task[:lint].invoke
Rake::Task[:yamllint].invoke
Rake::Task[:validate].invoke
Rake::Task[:rubocop].invoke
Rake::Task[:spec].invoke
end