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
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
|