Rakefile 1.51 KB
Newer Older
Sean OMeara's avatar
Sean OMeara committed
1
2
3
4
5
6
7
8
require 'rspec/core/rake_task'
require 'rubocop/rake_task'
require 'foodcritic'
require 'kitchen'

# Style tests. Rubocop and Foodcritic
namespace :style do
  desc 'Run Ruby style checks'
9
  RuboCop::RakeTask.new(:ruby)
Sean OMeara's avatar
Sean OMeara committed
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

  desc 'Run Chef style checks'
  FoodCritic::Rake::LintTask.new(:chef) do |t|
    t.options = {
      fail_tags: ['any'],
      tags: ['~FC005']
    }
  end
end

desc 'Run all style checks'
task style: ['style:chef', 'style:ruby']

# # Rspec and ChefSpec
# desc "Run ChefSpec examples"
# RSpec::Core::RakeTask.new(:spec)

# Integration tests. Kitchen.ci
namespace :integration do
  desc 'Run Test Kitchen with Vagrant'
  task :vagrant do
    Kitchen.logger = Kitchen.default_file_logger
    Kitchen::Config.new.instances.each do |instance|
      instance.test(:always)
    end
  end
Tim Smith's avatar
Tim Smith committed
36

Sean OMeara's avatar
Sean OMeara committed
37
38
39
40
41
42
  desc 'Run Test Kitchen with cloud plugins'
  task :cloud do
    run_kitchen = true
    if ENV['TRAVIS'] == 'true' && ENV['TRAVIS_PULL_REQUEST'] != 'false'
      run_kitchen = false
    end
Tim Smith's avatar
Tim Smith committed
43

Sean OMeara's avatar
Sean OMeara committed
44
45
46
    if run_kitchen
      Kitchen.logger = Kitchen.default_file_logger
      @loader = Kitchen::Loader::YAML.new(project_config: './.kitchen.cloud.yml')
Tim Smith's avatar
Tim Smith committed
47
      config = Kitchen::Config.new(loader: @loader)
Sean OMeara's avatar
Sean OMeara committed
48
      config.instances.each do |instance|
Tim Smith's avatar
Tim Smith committed
49
50
        instance.test(:always)
      end
Sean OMeara's avatar
Sean OMeara committed
51
52
53
54
55
    end
  end
end

desc 'Run all tests on Travis'
Tim Smith's avatar
Tim Smith committed
56
# task travis: ['style', 'spec', 'integration:cloud']
Sean OMeara's avatar
Sean OMeara committed
57
58
59
task travis: ['style', 'integration:cloud']

# Default
Tim Smith's avatar
Tim Smith committed
60
# task default: ['style', 'spec', 'integration:vagrant']
Sean OMeara's avatar
Sean OMeara committed
61
task default: ['style', 'integration:vagrant']