summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett Honeycutt <code@garretthoneycutt.com>2013-11-30 11:18:43 -0500
committerGarrett Honeycutt <code@garretthoneycutt.com>2013-11-30 11:18:43 -0500
commit9226037e4e1a3648f8b6809726612acae3046d74 (patch)
tree5d6f633e676860ae6e2a7ffaa0c78e229b1d5ba3
parent44c181ec0e230768b8dce10de57f9b32638e66e1 (diff)
Add rake tasks to validate and lint files and check with Travis
This patch adds the ability to validate syntax of manifests, templates, and ruby files in lib/ via `rake validate` and the linting of manifests with puppet-lint via `rake lint`. These two commands are chained with running the spec tests in Travis to ensure there are no syntax or style issues.
-rw-r--r--.travis.yml2
-rw-r--r--Gemfile2
-rw-r--r--Rakefile16
3 files changed, 19 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml
index 1bb1889..8334d42 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
language: ruby
bundler_args: --without development
-script: "bundle exec rake spec SPEC_OPTS='--color --format documentation'"
+script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--color --format documentation'"
rvm:
- 1.8.7
- 1.9.3
diff --git a/Gemfile b/Gemfile
index 636f930..1b788fd 100644
--- a/Gemfile
+++ b/Gemfile
@@ -39,4 +39,6 @@ else
gem 'puppet', :require => false
end
+gem 'puppet-lint', '>= 0.3.2'
+
# vim:ft=ruby
diff --git a/Rakefile b/Rakefile
index 14f1c24..4ed1327 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,2 +1,18 @@
require 'rubygems'
require 'puppetlabs_spec_helper/rake_tasks'
+require 'puppet-lint/tasks/puppet-lint'
+PuppetLint.configuration.send('disable_80chars')
+PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
+
+desc "Validate manifests, templates, and ruby files in lib."
+task :validate do
+ Dir['manifests/**/*.pp'].each do |manifest|
+ sh "puppet parser validate --noop #{manifest}"
+ end
+ Dir['lib/**/*.rb'].each do |lib_file|
+ sh "ruby -c #{lib_file}"
+ end
+ Dir['templates/**/*.erb'].each do |template|
+ sh "erb -P -x -T '-' #{template} | ruby -c"
+ end
+end