Rakefile in itamae-1.12.0 vs Rakefile in itamae-1.12.1

- old
+ new

@@ -8,70 +8,66 @@ end desc 'Run unit and integration specs.' task :spec => ['spec:unit', 'spec:integration:all'] +TEST_IMAGE = ENV["TEST_IMAGE"] || "ubuntu:trusty" + namespace :spec do RSpec::Core::RakeTask.new("unit") do |task| task.ruby_opts = '-I ./spec/unit' task.pattern = "./spec/unit{,/*/**}/*_spec.rb" end namespace :integration do - targets = ["ubuntu:trusty"] container_name = 'itamae' - task :all => targets + ['spec:integration:local'] + task :all => ['spec:integration:docker' 'spec:integration:local'] - targets.each do |target| - desc "Run provision and specs to #{target}" - task target => ["docker:#{target}", "provision:#{target}", "serverspec:#{target}", 'clean_docker_container'] + desc "Run provision and specs" + task :docker => ["docker:boot", "docker:provision", "docker:serverspec", 'docker:clean_docker_container'] - namespace :docker do - desc "Run docker for #{target}" - task target do - sh "docker run --privileged -d --name #{container_name} #{target} /sbin/init" - end + namespace :docker do + desc "Run docker" + task :boot do + sh "docker run --privileged -d --name #{container_name} #{TEST_IMAGE} /sbin/init" end - namespace :provision do - desc "Run itamae to #{target}" - task target do - suites = [ - [ - "spec/integration/recipes/default.rb", - "spec/integration/recipes/default2.rb", - "spec/integration/recipes/redefine.rb", - "spec/integration/recipes/docker.rb", - ], - [ - "--dry-run", - "spec/integration/recipes/dry_run.rb", - ], - ] - suites.each do |suite| - cmd = %w!bundle exec ruby -w bin/itamae docker! - cmd << "-l" << (ENV['LOG_LEVEL'] || 'debug') - cmd << "-j" << "spec/integration/recipes/node.json" - cmd << "--container" << container_name - cmd << "--tag" << "itamae:latest" - cmd += suite + desc "Run itamae" + task :provision do + suites = [ + [ + "spec/integration/recipes/default.rb", + "spec/integration/recipes/default2.rb", + "spec/integration/recipes/redefine.rb", + "spec/integration/recipes/docker.rb", + ], + [ + "--dry-run", + "spec/integration/recipes/dry_run.rb", + ], + ] + suites.each do |suite| + cmd = %w!bundle exec ruby -w bin/itamae docker! + cmd << "-l" << (ENV['LOG_LEVEL'] || 'debug') + cmd << "-j" << "spec/integration/recipes/node.json" + cmd << "--container" << container_name + cmd << "--tag" << "itamae:latest" + cmd << "--tmp-dir" << (ENV['ITAMAE_TMP_DIR'] || '/tmp/itamae_tmp') + cmd += suite - p cmd - unless system(*cmd) - raise "#{cmd} failed" - end + p cmd + unless system(*cmd) + raise "#{cmd} failed" end end end - namespace :serverspec do - desc "Run serverspec tests to #{target}" - RSpec::Core::RakeTask.new(target.to_sym) do |t| - ENV['DOCKER_CONTAINER'] = container_name - t.ruby_opts = '-I ./spec/integration' - t.pattern = "spec/integration/{default,docker}_spec.rb" - end + desc "Run serverspec tests" + RSpec::Core::RakeTask.new(:serverspec) do |t| + ENV['DOCKER_CONTAINER'] = container_name + t.ruby_opts = '-I ./spec/integration' + t.pattern = "spec/integration/{default,docker}_spec.rb" end desc 'Clean a docker container for test' task :clean_docker_container do sh('docker', 'rm', '-f', container_name)