cookbook-openstack-client/Rakefile

78 lines
1.6 KiB
Ruby

# Encoding: utf-8
namespace :prepare do
desc 'Install ChefDK'
task :chefdk do
begin
gem 'chef-dk', '0.3.0'
rescue Gem::LoadError
puts 'ChefDK not found. Installing it for you...'
sh %(wget -O /tmp/chefdk.deb https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.3.0-1_amd64.deb)
sh %(sudo dpkg -i /tmp/chefdk.deb)
end
end
task :bundle do
if ENV['CI']
sh %(chef exec bundle install --path=.bundle --jobs 1 --retry 3 --verbose)
else
sh %(chef exec bundle install --path .bundle)
end
end
task :berks do
sh %(chef exec berks vendor)
end
end
desc 'Install required Gems and Cookbooks'
task prepare: ['prepare:bundle', 'prepare:berks']
namespace :style do
task :rubocop do
sh %(chef exec rubocop)
end
task :foodcritic do
sh %(chef exec foodcritic .)
end
end
desc 'Run all style checks'
task style: ['style:foodcritic', 'style:rubocop']
namespace :integration do
task :kitchen do
sh %(chef exec kitchen test)
end
end
task integration: ['integration:kitchen']
namespace :unit do
task :chefspec do
sh %(chef exec rspec test/unit/spec)
end
end
desc 'Run all unit tests'
task unit: ['unit:chefspec']
task spec: ['unit']
# Run all tests
desc 'Run all tests'
task test: ['style', 'unit', 'integration']
# The default rake task should just run it all
desc 'Install required Gems and Cookbook then run all tests'
task default: ['prepare', 'test']
begin
require 'kitchen/rake_tasks'
Kitchen::RakeTasks.new
rescue LoadError
puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
end