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)
downloadpuppet-stdlib-9226037e4e1a3648f8b6809726612acae3046d74.tar.gz
puppet-stdlib-9226037e4e1a3648f8b6809726612acae3046d74.tar.bz2
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