From 9226037e4e1a3648f8b6809726612acae3046d74 Mon Sep 17 00:00:00 2001 From: Garrett Honeycutt Date: Sat, 30 Nov 2013 11:18:43 -0500 Subject: [PATCH] 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. --- .travis.yml | 2 +- Gemfile | 2 ++ Rakefile | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1bb188991..8334d4287 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 636f930ad..1b788fd28 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 14f1c2462..4ed1327a3 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