Skip to content

Commit

Permalink
Added (possibly-broken) test harness
Browse files Browse the repository at this point in the history
  • Loading branch information
Julian C. Dunn committed Jul 12, 2014
1 parent 02337c3 commit 81b279a
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
language: ruby
bundler_args: --without kitchen_vagrant
rvm:
- 2.1.1
script:
- bundle exec rake style
36 changes: 36 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
source 'https://rubygems.org'

group :lint do
gem 'foodcritic', '~> 3.0'
gem 'rubocop', '~> 0.24'
end

group :unit do
gem 'berkshelf', '~> 3.0'
gem 'chefspec', '~> 3.1'
end

group :kitchen_common do
gem 'test-kitchen', '~> 1.2'
end

group :kitchen_vagrant do
gem 'kitchen-vagrant'
end

group :kitchen_cloud do
gem 'kitchen-digitalocean'
gem 'kitchen-ec2'
end

group :development do
gem 'ruby_gntp'
gem 'growl'
gem 'rb-fsevent'
gem 'guard', '~> 2.4'
gem 'guard-kitchen'
gem 'guard-foodcritic'
gem 'guard-rspec'
gem 'guard-rubocop'
gem 'rake'
end
59 changes: 59 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
require 'foodcritic'
require 'kitchen'

# Style tests. Rubocop and Foodcritic
namespace :style do
desc 'Run Ruby style checks'
Rubocop::RakeTask.new(:ruby)

desc 'Run Chef style checks'
FoodCritic::Rake::LintTask.new(:chef) do |t|
t.options = {
:fail_tags => ['any'],
:tags => ['~FC005']
}
end
end

desc 'Run all style checks'
task :style => ['style:chef', 'style:ruby']

# Rspec and ChefSpec
desc 'Run ChefSpec examples'
RSpec::Core::RakeTask.new(:spec)

# Integration tests. Kitchen.ci
namespace :integration do
desc 'Run Test Kitchen with Vagrant'
task :vagrant do
Kitchen.logger = Kitchen.default_file_logger
Kitchen::Config.new.instances.each do |instance|
instance.test(:always)
end
end

desc 'Run Test Kitchen with cloud plugins'
task :cloud do
run_kitchen = true
if ENV['TRAVIS'] == 'true' && ENV['TRAVIS_PULL_REQUEST'] != 'false'
run_kitchen = false
end

if run_kitchen
Kitchen.logger = Kitchen.default_file_logger
@loader = Kitchen::Loader::YAML.new(:project_config => './.kitchen.cloud.yml')
config = Kitchen::Config.new(:loader => @loader)
config.instances.each do |instance|
instance.test(:always)
end
end
end
end

desc 'Run all tests on Travis'
task :travis => ['style', 'spec', 'integration:cloud']

# Default
task :default => ['style', 'spec', 'integration:vagrant']

0 comments on commit 81b279a

Please sign in to comment.