forked from rspec/rspec-core
/
FullBuildRakeFile
63 lines (52 loc) · 1.56 KB
/
FullBuildRakeFile
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
# this is in a separate rakefile because our main one depends on the bundled gems
# already being installed. This must be able to run w/o bundled gems installed.
def rake(command = "")
sh "rake #{command}"
end
desc "Run a full build: install necessary gems with bundler, runs specs, run cukes"
task :build => :bundle_install do
rake
end
desc "Install necessary gems with bundler and runs specs"
task :spec => :bundle_install do
rake "spec"
end
desc "Install necessary gems with bundler and runs cukes"
task :cucumber => :bundle_install do
rake "cucumber"
end
desc "Prints description of current ruby interpreter"
task :print_ruby_description do
description = if defined?(RUBY_DESCRIPTION)
RUBY_DESCRIPTION
else
# RUBY_DESCRIPTION is undefined on 1.8.6
"ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]"
end
puts
puts "=" * 80
puts "Using #{description}"
puts "=" * 80
puts
end
task :bundle_install => :ensure_bundler_installed do
# Unfortunately, there is no version of ruby-debug that installs cleanly on 1.9.1 and 1.9.2.
# Our Gemfile specifies different versions using conditionals, but we still need to bundle update
# to get bundler to use the different versions.
if RUBY_VERSION =~ /^1\.9/
sh "bundle update ruby-debug-base19"
end
sh "bundle install"
end
task :ensure_bundler_installed => :print_ruby_description do
installed = begin
require 'rubygems'
require 'bundler'
true
rescue LoadError
false
end
unless installed
sh "gem install bundler"
end
end