You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
743 B

# Molecule managed
require 'rake'
require 'rspec/core/rake_task'
require 'yaml'
require 'fileutils'
task spec: 'serverspec:all'
task default: :spec
hosts = YAML.load_file('.molecule/state.yml')['hosts']
namespace :serverspec do
task all: hosts.keys
hosts.each do |name, host|
desc "Run serverspec on #{name}"
pattern = ['spec/*_spec.rb', "spec/#{name}/*_spec.rb", "spec/hosts/#{name}/*_spec.rb"]
host['groups'].each do |group|
pattern << "spec/#{group}/*_spec.rb"
pattern << "spec/groups/#{group}/*_spec.rb"
end
RSpec::Core::RakeTask.new(name.to_sym) do |target|
puts "*** Run serverspec on #{name} ***"
ENV['TARGET_HOST'] = name
target.pattern = pattern.join(',')
end
end
end