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

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

Jose Luis Salas's avatar
Jose Luis Salas committed
23
24
25
# Rspec and ChefSpec
desc 'Run ChefSpec examples'
RSpec::Core::RakeTask.new(:spec)
Sean OMeara's avatar
Sean OMeara committed
26
27
28
29
30
31
32
33
34
35

# 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'
Jose Luis Salas's avatar
Jose Luis Salas committed
56
task travis: ['style', 'spec', 'integration:cloud']
Sean OMeara's avatar
Sean OMeara committed
57
58

# Default
Jose Luis Salas's avatar
Jose Luis Salas committed
59
task default: ['style', 'spec', 'integration:vagrant']