forked from chef-boneyard/vagrant-omnibus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
52 lines (42 loc) · 1.73 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
require 'bundler/setup'
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
require 'yard'
Rubocop::RakeTask.new
YARD::Rake::YardocTask.new
namespace :test do
RSpec::Core::RakeTask.new(:unit) do |t|
t.pattern = "test/unit/**/*_spec.rb"
end
desc "Run acceptance tests..these actually launch Vagrant sessions."
task :acceptance, :provider do |t, args|
# ensure all required dummy boxen are installed
%w{ aws rackspace }.each do |provider|
unless system("vagrant box list | grep 'dummy\s*(#{provider})' &>/dev/null")
system("vagrant box add dummy https://github.com/mitchellh/vagrant-#{provider}/raw/master/dummy.box")
end
end
unless system("vagrant box list | grep 'digital_ocean' &>/dev/null")
system("vagrant box add digital_ocean https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box")
end
all_providers = Dir["test/acceptance/*"].map{|dir| File.basename(File.expand_path(dir))}
# If a provider wasn't passed to the task run acceptance tests against
# ALL THE PROVIDERS!
providers = if args[:provider] && all_providers.include?(args[:provider])
[args[:provider]]
else
all_providers
end
providers.each do |provider|
puts "=================================================================="
puts "Running acceptance tests against '#{provider}' provider..."
puts "=================================================================="
Dir.chdir("test/acceptance/#{provider}") do
system("vagrant destroy -f")
system("vagrant up --provider=#{provider}")
system("vagrant destroy -f")
end
end
end
end