Class: PoiseBoiler::Helpers::Rake::Travis

Inherits:
Halite::HelperBase
  • Object
show all
Defined in:
lib/poise_boiler/helpers/rake/travis.rb

Overview

Helper for a Rakefile to install a task for testing on CI.

Examples:

Installing tasks

require 'poise_boiler/helpers/rake/travis'
PoiseBoiler::Helpers::Rake::Travis.install

Running CI suite

$ rake travis

Since:

  • 1.0.0

Instance Method Summary collapse

Instance Method Details

#installvoid

This method returns an undefined value.

Install the rake tasks.

Since:

  • 1.0.0



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
# File 'lib/poise_boiler/helpers/rake/travis.rb', line 35

def install
  # Delayed so that Rake doesn't need to be loaded to run this file.
  extend ::Rake::DSL

  file 'test/docker/docker.key' do
    sh(*%w{openssl rsa -in test/docker/docker.pem -passin env:KITCHEN_DOCKER_PASS -out test/docker/docker.key})
  end

  file './docker' do
    begin
      sh(*%w{wget https://get.docker.io/builds/Linux/x86_64/docker-latest -O docker})
    rescue RuntimeError
      sh(*%w{curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o docker})
    end
    File.chmod(0755, './docker')
  end

  file '.ssh/id_rsa' do
    # Add a zero-byte passphrase field.
    cmd = %w{ssh-keygen -f} + [File.expand_path('~/.ssh/id_rsa')] +  %w{-b 768 -P} + ['']
    sh(*cmd)
  end

  desc 'Run Test-Kitchen integration tests.'
  task 'travis:integration' => ( integration_rackspace? ? %w{.ssh/id_rsa chef:kitchen} : %w{test/docker/docker.key ./docker chef:kitchen} )

  desc 'Run CI tests'
  task 'travis' do
    ENV['POISE_MASTER_BUILD'] = 'true' if master_build?
    run_subtask('spec')
    run_subtask('chef:foodcritic')
    run_subtask('travis:integration') if integration_tests?
    if @failed && !@failed.empty?
      raise "Subtasks #{@failed.join(', ')} failed"
    end
  end
end