-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathRakefile
80 lines (67 loc) · 2.69 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# -*- mode: ruby -*-
# vi: set ft=ruby :
#
NAME = 'eNovance-cloud'
TDIR = File.expand_path(File.dirname(__FILE__))
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-lint/tasks/puppet-lint'
require 'puppet-syntax/tasks/puppet-syntax'
PuppetLint.configuration.fail_on_warnings = true
PuppetLint.configuration.send('disable_80chars')
# for manifest loadbalancer.pp +39 (default value as an array of variables)
PuppetLint.configuration.send('disable_class_parameter_defaults')
# manifests/image/api.pp - WARNING: string containing only a variable on line 189
PuppetLint.configuration.send('disable_only_variable_string')
# For stonith-enabled (it's a string not a bool)
PuppetLint.configuration.send('disable_quoted_booleans')
# Ignore all upstream modules
exclude_paths = ['spec/**/*','pkg/**/*','vendor/**/*']
exclude_lint_paths = exclude_paths
PuppetLint.configuration.ignore_paths = exclude_lint_paths
PuppetSyntax.exclude_paths = exclude_paths
task(:default).clear
task :default => :test
desc 'Run syntax, lint and spec tests'
task :test => [:syntax,:lint,:validate_puppetfile,:validate_metadata_json,:spec]
desc 'Run syntax, lint and spec tests (without fixture purge = train/airplane)'
task :test_keep => [:syntax,:lint,:validate_puppetfile,:validate_metadata_json,:spec_prep,:spec_standalone]
if ENV['COV']
desc 'Run syntax, lint, spec tests and coverage'
task :cov => [:syntax,:lint,:validate_puppetfile,:validate_metadata_json,:spec_prep,:spec_standalone]
end
desc "Validate the Puppetfile syntax"
task :validate_puppetfile do
$stderr.puts "---> syntax:puppetfile"
sh "r10k puppetfile check"
end
desc "Validate the metadata.json syntax"
task :validate_metadata_json do
$stderr.puts "---> syntax:metadata.json"
sh "metadata-json-lint metadata.json"
end
namespace :module do
desc "Build #{NAME} module (in a clean env) Please use this for puppetforge"
task :build do
exec "rsync -rv --exclude-from=#{TDIR}/.forgeignore . /tmp/#{NAME};cd /tmp/#{NAME};puppet module build"
end
end
Rake::Task[:spec_prep].clear
desc 'Create the fixtures directory'
task :spec_prep do
FileUtils::mkdir_p('spec/fixtures/modules')
FileUtils::mkdir_p('spec/fixtures/manifests')
FileUtils::touch('spec/fixtures/manifests/site.pp')
sh 'librarian-puppet install --path=spec/fixtures/modules'
if File.exists?('spec/fixtures/modules/cloud')
FileUtils::rm_rf('spec/fixtures/modules/cloud')
FileUtils::ln_s(TDIR, 'spec/fixtures/modules/cloud')
end
end
Rake::Task[:spec_clean].clear
desc 'Clean up the fixtures directory'
task :spec_clean do
sh 'librarian-puppet clean --path=spec/fixtures/modules'
if File.zero?('spec/fixtures/manifests/site.pp')
FileUtils::rm_f('spec/fixtures/manifests/site.pp')
end
end