mirror of
https://github.com/inspec/inspec
synced 2024-11-10 07:04:15 +00:00
5d6900fb86
Signed-off-by: Viktor Yakovlyev <Viktor.Y@D2L.com>
56 lines
1.2 KiB
Ruby
56 lines
1.2 KiB
Ruby
#!/usr/bin/env rake
|
|
# encoding: utf-8
|
|
|
|
require 'rake/testtask'
|
|
require 'rubocop/rake_task'
|
|
|
|
# Rubocop
|
|
desc 'Run Rubocop lint checks'
|
|
task :rubocop do
|
|
RuboCop::RakeTask.new
|
|
end
|
|
|
|
# Minitest
|
|
Rake::TestTask.new do |t|
|
|
t.libs << 'libraries'
|
|
t.libs << 'test/unit'
|
|
t.pattern = "test/unit/**/*_test.rb"
|
|
end
|
|
|
|
# lint the project
|
|
desc 'Run robocop linter'
|
|
task lint: [:rubocop]
|
|
|
|
# run tests
|
|
task default: [:lint, :test]
|
|
|
|
namespace :test do
|
|
# run inspec check to verify that the profile is properly configured
|
|
task :check do
|
|
dir = File.join(File.dirname(__FILE__))
|
|
sh("bundle exec inspec check #{dir}")
|
|
end
|
|
|
|
task :integration_no_cleanup do
|
|
integration_dir = "test/integration"
|
|
|
|
puts "----> Build"
|
|
sh("cd #{integration_dir}/build/ && terraform plan")
|
|
sh("cd #{integration_dir}/build/ && terraform apply")
|
|
|
|
puts "----> Verify"
|
|
sh("bundle exec inspec exec #{integration_dir}/verify")
|
|
end
|
|
|
|
task :integration do
|
|
Rake::Task["test:cleanup"].execute
|
|
Rake::Task["test:integration_no_cleanup"].execute
|
|
Rake::Task["test:cleanup"].execute
|
|
end
|
|
|
|
task :cleanup do
|
|
integration_dir = "test/integration"
|
|
puts "----> Destroy"
|
|
sh("cd #{integration_dir}/build/ && terraform destroy -force")
|
|
end
|
|
end
|