forked from phlipper/chef-monit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
48 lines (38 loc) · 1.09 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
#!/usr/bin/env rake
task default: "test"
desc "Run all tests"
task test: [:knife, :rubocop, :foodcritic, :kitchen]
desc "Runs foodcritic linter"
task foodcritic: :prepare_sandbox do
sh "bundle exec foodcritic -f any #{sandbox_path}"
end
desc "Runs knife cookbook test"
task knife: :prepare_sandbox do
sh "bundle exec knife cookbook test cookbook -c test/.chef/knife.rb -o #{sandbox_path}/../"
end
desc "Runs RuboCop style checks"
task rubocop: :prepare_sandbox do
sh "bundle exec rubocop #{sandbox_path}"
end
desc "Runs integration tests with test kitchen"
task :kitchen do
if ENV["CI"]
puts "Skipping Kitchen tests for now due to CI environment..."
exit
end
args = ENV["CI"] ? "test --destroy=always" : "verify"
sh "bundle exec kitchen #{args}"
end
task :prepare_sandbox do
files = %w[
*.md *.rb attributes definitions libraries files providers recipes
resources templates
]
rm_rf sandbox_path
mkdir_p sandbox_path
cp_r Dir.glob("{#{files.join(",")}}"), sandbox_path
end
private
def sandbox_path
File.join(File.dirname(__FILE__), %w[tmp cookbooks cookbook])
end