From 4244305283339b920c6daaec69460a35e34d72d1 Mon Sep 17 00:00:00 2001 From: Gael Chamoulaud Date: Tue, 18 Nov 2014 15:20:46 +0100 Subject: [PATCH] Add Rakefile to run rspec tests over all the puppet modules. Signed-off-by: Gael Chamoulaud --- .gitignore | 5 +++++ .travis.yml | 19 +++++++++++++++++++ Gemfile | 21 +++++++++++++++++++++ Rakefile | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 Gemfile create mode 100644 Rakefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..1c3d2ce9c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.swp +Gemfile.lock +.vendor +vendor +*/spec/* diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..d289530b0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: ruby +install: + - gem install bundler + - gem install rake + - gem install r10k +script: "rake test SPEC_OPTS='--format documentation --color --backtrace'" +rvm: + - 1.9.3 + - 2.0.0 +matrix: + fast_finish: true +env: + matrix: + - PUPPET_GEM_VERSION="~> 3.3.0" + - PUPPET_GEM_VERSION="~> 3.4.0" + - PUPPET_GEM_VERSION="~> 3.6.0" + - PUPPET_GEM_VERSION="~> 3.7.0" +notifications: + email: false diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..b59363b38 --- /dev/null +++ b/Gemfile @@ -0,0 +1,21 @@ +source ENV['GEM_SOURCE'] || "https://rubygems.org" + +group :development, :test do + gem 'bundler' + gem 'r10k' + gem 'rake', '10.1.1' +end + +if facterversion = ENV['FACTER_GEM_VERSION'] + gem 'facter', facterversion, :require => false +else + gem 'facter', :require => false +end + +if puppetversion = ENV['PUPPET_GEM_VERSION'] + gem 'puppet', puppetversion, :require => false +else + gem 'puppet', :require => false +end + +# vim:ft=ruby diff --git a/Rakefile b/Rakefile new file mode 100644 index 000000000..fa32c7f0a --- /dev/null +++ b/Rakefile @@ -0,0 +1,32 @@ +task(:default).clear +task :default => :test + +desc 'Run Puppetfile Validation' +task :test => [:validate_puppetfile,:all_modules] + +desc "Validate the Puppetfile syntax" +task :validate_puppetfile do + $stderr.puts "---> syntax:puppetfile" + sh "r10k puppetfile check" +end + +desc "Run rspec tests for each modules" +task :all_modules do + FileList["*/Rakefile"].each do |project| + dir = project.pathmap("%d") + Dir.chdir(dir) do + puts "======" + puts "= Running spec test for #{project}" + puts "======" + system('rm -Rf vendor/') + system('rm -Rf .bundle/') + FileUtils.mkdir 'vendor' + ENV['GEM_HOME'] = "vendor" + system('bundle install --path=vendor/ --gemfile=./Gemfile') + ENV['BUNDLE_GEMFILE'] = "./Gemfile" + system('bundle exec rake spec') + system('rm -Rf vendor') + system('rm -Rf .bundle/') + end + end +end