-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
102 lines (77 loc) · 2.65 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using_git = File.exist?(File.expand_path('../.git/', __FILE__))
if using_git
require 'bundler'
require 'bundler/setup'
Bundler::GemHelper.install_tasks
end
require 'rake'
require "rspec/core/rake_task"
RSpec::Core::RakeTask.new(:spec) do |t|
t.verbose = false
# we require spec_helper so we don't get an RSpec warning about
# examples being defined before configuration.
t.ruby_opts = "-w -r./spec/capture_warnings -r./spec/spec_helper"
# I'm not sure why, but bundler seems to silence warnings...
t.skip_bundler = true
t.rspec_opts = %w[--format progress] if (ENV['FULL_BUILD'] || !using_git)
end
desc "Run all examples using rcov"
RSpec::Core::RakeTask.new :rcov => :cleanup_rcov_files do |t|
t.rcov = true
t.rcov_opts = %[-Ilib -Ispec --exclude "spec/*,gems/*,ping,basic_object" --text-report --sort coverage --aggregate coverage.data]
end
task :cleanup_rcov_files do
rm_rf 'coverage.data'
end
require 'cucumber/rake/task'
Cucumber::Rake::Task.new
task :default => [:spec, :cucumber]
namespace :ci do
desc "Sets things up for a ci build on travis-ci.org"
task :setup do
ENV['TRAVIS'] = 'true'
sh "git submodule init"
sh "git submodule update"
end
RSpec::Core::RakeTask.new(:spec) do |t|
t.verbose = true
# we require spec_helper so we don't get an RSpec warning about
# examples being defined before configuration.
t.ruby_opts = "-w -r./spec/capture_warnings -r./spec/spec_helper"
# I'm not sure why, but bundler seems to silence warnings...
t.skip_bundler = true
t.rspec_opts = %w[--format progress --backtrace]
end
desc "Run a ci build"
task :build => [:setup, :spec, :cucumber]
end
def ensure_relish_doc_symlinked(filename)
from_filename = filename.dup
from_filename << '.md' unless filename =~ /\.md$/
from = File.expand_path("../features/#{from_filename}", __FILE__)
to = File.expand_path("../#{filename}", __FILE__)
if File.symlink?(from)
return if File.readlink(from) == to
# delete the old symlink
File.unlink(from)
end
FileUtils.ln_s to, from
end
desc "Push cukes to relishapp using the relish-client-gem"
task :relish do
%w[ README.md CHANGELOG.md LICENSE ].each do |file|
ensure_relish_doc_symlinked(file)
end
require 'vcr/version'
sh "relish versions:add myronmarston/vcr:#{VCR.version}" if ENV['NEW_RELISH_RELEASE']
sh "relish push vcr:#{VCR.version}"
end
task :prep_relish_release do
ENV['NEW_RELISH_RELEASE'] = 'true'
end
task :require_ruby_18 do
raise "This must be run on Ruby 1.8" unless RUBY_VERSION =~ /^1\.8/
end
task :release => [:require_ruby_18, :prep_relish_release, :relish]
# For gem-test: http://gem-testers.org/
task :test => :spec