diff options
author | John Keiser <john@johnkeiser.com> | 2015-09-29 22:03:48 -0700 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2015-09-30 12:55:02 -0700 |
commit | e6959f4e9306a65ac52bc9087acdf4a0bccc2f59 (patch) | |
tree | 1da4ef4cf6f742d8d62587d20ff01639278a0659 | |
parent | d1a0e4b9dc4b5f00ce7fa5d56866fa0cbe8413e9 (diff) | |
download | chef-e6959f4e9306a65ac52bc9087acdf4a0bccc2f59.tar.gz |
Add external tests for chefspec, chef-sugar, chef-rewind, foodcritic and poise
-rw-r--r-- | .travis.yml | 15 | ||||
-rw-r--r-- | Gemfile | 8 | ||||
-rw-r--r-- | external_tests/chef-rewind.gemfile | 5 | ||||
-rw-r--r-- | external_tests/chef-sugar.gemfile | 6 | ||||
-rw-r--r-- | external_tests/chefspec.gemfile | 7 | ||||
-rw-r--r-- | external_tests/foodcritic.gemfile | 9 | ||||
-rw-r--r-- | external_tests/halite.gemfile | 8 | ||||
-rw-r--r-- | external_tests/poise.gemfile | 7 | ||||
-rw-r--r-- | tasks/external_tests.rb | 64 |
9 files changed, 64 insertions, 65 deletions
diff --git a/.travis.yml b/.travis.yml index d7ad317e28..5f616dd95d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,21 @@ matrix: gemfile: pedant.gemfile script: bundle exec rake pedant ### START TEST KITCHEN ONLY ### + - rvm: 2.2 + script: bundle exec rake chefspec_spec + - rvm: 2.2 + script: bundle exec rake chef_sugar_spec + - rvm: 2.2 + script: bundle exec rake chef_rewind_spec + - rvm: 2.2 + script: bundle exec rake foodcritic_spec + - rvm: 2.2 + script: bundle exec rake halite_spec + - rvm: 2.2 + script: bundle exec rake poise_spec + # Not working yet: halite + # - rvm: 2.2 + # script: bundle exec rake poise_spec - rvm: 2.1 gemfile: kitchen-tests/Gemfile before_install: @@ -25,6 +25,14 @@ group(:development, :test) do gem 'cheffish', "~> 1.3", "!= 1.3.1" gem 'ruby-shadow', :platforms => :ruby unless RUBY_PLATFORM.downcase.match(/(aix|cygwin)/) + + # For external tests + gem 'chefspec' + gem 'chef-sugar' + gem 'poise', github: 'poise/poise', branch: 'deeecb890a6a0bc2037dfb09ce0fd0a8931519aa' + gem 'halite', github: 'poise/halite' + gem 'foodcritic', github: 'acrmp/foodcritic', branch: 'v5.0.0' + gem 'chef-rewind' end # If you want to load debugging tools into the bundle exec sandbox, diff --git a/external_tests/chef-rewind.gemfile b/external_tests/chef-rewind.gemfile deleted file mode 100644 index 39f7d6e0e8..0000000000 --- a/external_tests/chef-rewind.gemfile +++ /dev/null @@ -1,5 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'chef-rewind', github: 'thommay/chef-rewind' diff --git a/external_tests/chef-sugar.gemfile b/external_tests/chef-sugar.gemfile deleted file mode 100644 index 31ef3bb5b8..0000000000 --- a/external_tests/chef-sugar.gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'chef-sugar', github: 'sethvargo/chef-sugar' -gem 'chefspec' diff --git a/external_tests/chefspec.gemfile b/external_tests/chefspec.gemfile deleted file mode 100644 index fb7878afbd..0000000000 --- a/external_tests/chefspec.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'chefspec', github: 'sethvargo/chefspec', group: :development -gem 'aruba' -gem 'yard' diff --git a/external_tests/foodcritic.gemfile b/external_tests/foodcritic.gemfile deleted file mode 100644 index a2b71a0d8c..0000000000 --- a/external_tests/foodcritic.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'foodcritic', github: 'acrmp/foodcritic' -gem 'cucumber' -gem 'rubocop' -gem 'simplecov' -gem 'minitest' diff --git a/external_tests/halite.gemfile b/external_tests/halite.gemfile deleted file mode 100644 index cd8cd05668..0000000000 --- a/external_tests/halite.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'poise', github: 'poise/poise' -gem 'halite', github: 'poise/halite' -gem 'poise-boiler', github: 'poise/poise-boiler' -gem 'rspec-command', github: 'coderanger/rspec-command' diff --git a/external_tests/poise.gemfile b/external_tests/poise.gemfile deleted file mode 100644 index 7d274b7a29..0000000000 --- a/external_tests/poise.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -gemspec(name: 'chef', path: "../") - -gem 'poise', github: 'poise/poise' -gem 'halite', github: 'poise/halite' -gem 'poise-boiler', github: 'poise/poise-boiler' diff --git a/tasks/external_tests.rb b/tasks/external_tests.rb index 2ff991ddf7..b87b5bf1d6 100644 --- a/tasks/external_tests.rb +++ b/tasks/external_tests.rb @@ -1,29 +1,47 @@ -task :chef_sugar_spec do - gem_path = Bundler.environment.specs['chef-sugar'].first.full_gem_path - system("cd #{gem_path} && rake") -end +require 'tempfile' -task :foodcritic_spec do - gem_path = Bundler.environment.specs['foodcritic'].first.full_gem_path - system("cd #{gem_path} && rake test") +def bundle_exec_with_chef(test_gem, command) + gem_path = Bundler.environment.specs[test_gem].first.full_gem_path + gemfile_path = File.join(gem_path, 'Gemfile.chef-external-test') + gemfile = File.open(gemfile_path, "w") + begin + IO.read(File.join(gem_path, 'Gemfile')).each_line do |line| + if line =~ /^\s*gemspec/ + next + elsif line =~ /^\s*gem 'chef'|\s*gem "chef"/ + next + elsif line =~ /^\s*dev_gem\s*['"](.+)['"]\s*$/ + line = "gem '#{$1}', github: 'poise/#{$1}'" + elsif line =~ /\s*gem\s*['"]#{test_gem}['"]/ # foodcritic + next + end + gemfile.puts(line) + end + gemfile.puts("gem 'chef', path: #{File.expand_path('../..', __FILE__).inspect}") + gemfile.puts("gemspec path: #{gem_path.inspect}") + gemfile.close + Dir.chdir(gem_path) do + system({ 'BUNDLE_GEMFILE' => gemfile.path, 'RUBYOPT' => nil }, "bundle install") + system({ 'BUNDLE_GEMFILE' => gemfile.path, 'RUBYOPT' => nil }, "bundle exec #{command}") + end + ensure + File.delete(gemfile_path) + end end -task :chefspec_spec do - gem_path = Bundler.environment.specs['chefspec'].first.full_gem_path - system("cd #{gem_path} && rake") -end +EXTERNAL_PROJECTS = { + "chef-sugar" => "rake", + "foodcritic" => "rake test", + "chefspec" => "rake", + "chef-rewind" => "rake spec", + "poise" => "rake spec", + "halite" => "rake spec" +} -task :chef_rewind_spec do - gem_path = Bundler.environment.specs['chef-rewind'].first.full_gem_path - system("cd #{gem_path} && rake spec") -end - -task :poise_spec do - gem_path = Bundler.environment.specs['poise'].first.full_gem_path - system("cd #{gem_path} && rake spec") -end +task :external_specs => EXTERNAL_PROJECTS.keys.map { |g| :"#{g.sub("-","_")}_spec" } -task :halite_spec do - gem_path = Bundler.environment.specs['halite'].first.full_gem_path - system("cd #{gem_path} && rake spec") +EXTERNAL_PROJECTS.each do |test_gem, command| + task :"#{test_gem.gsub('-','_')}_spec" do + bundle_exec_with_chef(test_gem, command) + end end |