buildr 1.4.12-x86-mswin32 → 1.4.13-x86-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/CHANGELOG +62 -0
- data/addon/buildr/checkstyle.rb +6 -4
- data/addon/buildr/gpg.rb +9 -2
- data/addon/buildr/gwt.rb +1 -0
- data/buildr.gemspec +18 -20
- data/doc/download.textile +30 -6
- data/doc/index.textile +21 -9
- data/doc/packaging.textile +29 -0
- data/lib/buildr.rb +3 -0
- data/lib/buildr/core/application.rb +24 -0
- data/lib/buildr/core/assets.rb +93 -0
- data/lib/buildr/core/build.rb +3 -2
- data/lib/buildr/core/common.rb +3 -2
- data/lib/buildr/core/compile.rb +0 -1
- data/lib/buildr/core/generate.rb +2 -2
- data/lib/buildr/core/project.rb +1 -1
- data/lib/buildr/core/shell.rb +1 -1
- data/lib/buildr/core/transports.rb +4 -1
- data/lib/buildr/core/util.rb +8 -0
- data/lib/buildr/ide/idea.rb +267 -114
- data/lib/buildr/java/commands.rb +16 -2
- data/lib/buildr/java/packaging.rb +6 -4
- data/lib/buildr/java/pom.rb +1 -1
- data/lib/buildr/java/tests.rb +3 -3
- data/lib/buildr/packaging/archive.rb +4 -3
- data/lib/buildr/packaging/package.rb +0 -2
- data/lib/buildr/packaging/ziptask.rb +1 -1
- data/lib/buildr/version.rb +2 -2
- data/rakelib/rspec.rake +5 -49
- data/rakelib/stage.rake +7 -5
- data/spec/addon/jaxb_xjc_spec.rb +2 -2
- data/spec/core/application_spec.rb +8 -8
- data/spec/core/build_spec.rb +41 -41
- data/spec/core/common_spec.rb +3 -2
- data/spec/core/test_spec.rb +34 -34
- data/spec/core/transport_spec.rb +21 -17
- data/spec/ide/idea_spec.rb +707 -4
- data/spec/java/packaging_spec.rb +20 -0
- data/spec/java/tests_spec.rb +2 -2
- data/spec/packaging/packaging_spec.rb +0 -22
- metadata +54 -116
data/lib/buildr/java/commands.rb
CHANGED
@@ -43,7 +43,7 @@ module Java
|
|
43
43
|
def java(*args, &block)
|
44
44
|
options = Hash === args.last ? args.pop : {}
|
45
45
|
options[:verbose] ||= trace?(:java)
|
46
|
-
rake_check_options options, :classpath, :java_args, :properties, :name, :verbose
|
46
|
+
rake_check_options options, :classpath, :java_args, :properties, :name, :verbose, :dir
|
47
47
|
|
48
48
|
name = options[:name]
|
49
49
|
if name.nil?
|
@@ -63,7 +63,21 @@ module Java
|
|
63
63
|
end
|
64
64
|
cmd_args << path_to_bin('java')
|
65
65
|
cp = classpath_from(options)
|
66
|
-
|
66
|
+
paths = cp.map do |c|
|
67
|
+
path = File.directory?(c) && !c.end_with?('/') ? "#{c}/" : c.to_s
|
68
|
+
Buildr::Util.win_os? ? "/#{path}" : path
|
69
|
+
end
|
70
|
+
manifest = Buildr::Packaging::Java::Manifest.new([{'Class-Path' => paths.join(" ")}])
|
71
|
+
|
72
|
+
tjar = Tempfile.new(['javacmd', '.jar'])
|
73
|
+
Zip::ZipOutputStream.open(tjar.path) do |zos|
|
74
|
+
zos.put_next_entry('META-INF/MANIFEST.MF')
|
75
|
+
zos.write manifest.to_s
|
76
|
+
zos.write "\n"
|
77
|
+
end
|
78
|
+
tjar.close
|
79
|
+
|
80
|
+
cmd_args << '-classpath' << tjar.path
|
67
81
|
options[:properties].each { |k, v| cmd_args << "-D#{k}=#{v}" } if options[:properties]
|
68
82
|
cmd_args += (options[:java_args] || (ENV['JAVA_OPTS'] || ENV['JAVA_OPTIONS']).to_s.split).flatten
|
69
83
|
cmd_args += args.flatten.compact
|
@@ -671,8 +671,6 @@ module Buildr #:nodoc:
|
|
671
671
|
end
|
672
672
|
end
|
673
673
|
|
674
|
-
protected
|
675
|
-
|
676
674
|
def package_as_jar(file_name) #:nodoc:
|
677
675
|
Java::JarTask.define_task(file_name).tap do |jar|
|
678
676
|
jar.with :manifest=>manifest, :meta_inf=>meta_inf
|
@@ -687,8 +685,12 @@ module Buildr #:nodoc:
|
|
687
685
|
war.with :classes=>[compile.target, resources.target].compact
|
688
686
|
war.with :libs=>compile.dependencies
|
689
687
|
# Add included files, or the webapp directory.
|
690
|
-
|
691
|
-
|
688
|
+
assets.paths.each do |asset|
|
689
|
+
war.tap do |war|
|
690
|
+
war.enhance([asset])
|
691
|
+
end
|
692
|
+
war.include asset, :as => '.'
|
693
|
+
end
|
692
694
|
end
|
693
695
|
end
|
694
696
|
|
data/lib/buildr/java/pom.rb
CHANGED
data/lib/buildr/java/tests.rb
CHANGED
@@ -233,7 +233,7 @@ module Buildr #:nodoc:
|
|
233
233
|
forking = {}
|
234
234
|
when :each
|
235
235
|
forking = { :fork=>true, :forkmode=>'perTest' }
|
236
|
-
when true, :once
|
236
|
+
when nil, true, :once
|
237
237
|
forking = { :fork=>true, :forkmode=>'once' }
|
238
238
|
else
|
239
239
|
fail 'Option fork must be :once, :each or false.'
|
@@ -296,7 +296,7 @@ module Buildr #:nodoc:
|
|
296
296
|
# * :args -- Arguments passed to the TestNG command line runner.
|
297
297
|
class TestNG < TestFramework::Java
|
298
298
|
|
299
|
-
VERSION = '6.8'
|
299
|
+
VERSION = '6.8.5'
|
300
300
|
|
301
301
|
class << self
|
302
302
|
def version
|
@@ -389,7 +389,7 @@ module Buildr #:nodoc:
|
|
389
389
|
fail "Missing :frameworks option" unless options[:frameworks]
|
390
390
|
@frameworks = options[:frameworks].map do |f|
|
391
391
|
framework_options = (options[:options] || {})[f.to_sym] || {}
|
392
|
-
f.new(task,
|
392
|
+
f.new(task, framework_options)
|
393
393
|
end
|
394
394
|
end
|
395
395
|
|
@@ -312,7 +312,7 @@ module Buildr #:nodoc:
|
|
312
312
|
|
313
313
|
# Make sure we're the last enhancements, so other enhancements can add content.
|
314
314
|
enhance do
|
315
|
-
@file_map =
|
315
|
+
@file_map = OrderedHash.new
|
316
316
|
enhance do
|
317
317
|
send 'create' if respond_to?(:create)
|
318
318
|
# We're here because the archive file does not exist, or one of the files is newer than the archive contents;
|
@@ -345,7 +345,8 @@ module Buildr #:nodoc:
|
|
345
345
|
#
|
346
346
|
# package(:jar).clean.include path_to('desired/content')
|
347
347
|
def clean
|
348
|
-
@paths =
|
348
|
+
@paths = OrderedHash.new
|
349
|
+
@paths[''] = Path.new(self, '')
|
349
350
|
@prepares = []
|
350
351
|
self
|
351
352
|
end
|
@@ -469,7 +470,7 @@ module Buildr #:nodoc:
|
|
469
470
|
@prepares.each { |prepare| prepare.call(self) }
|
470
471
|
@prepares.clear
|
471
472
|
|
472
|
-
file_map =
|
473
|
+
file_map = OrderedHash.new
|
473
474
|
@paths.each do |name, path|
|
474
475
|
path.add_files(file_map)
|
475
476
|
end
|
data/lib/buildr/version.rb
CHANGED
data/rakelib/rspec.rake
CHANGED
@@ -17,7 +17,7 @@ require 'rspec/core/rake_task'
|
|
17
17
|
directory '_reports'
|
18
18
|
|
19
19
|
def default_spec_opts
|
20
|
-
default = %w{--format documentation --out _reports/specs.txt --backtrace}
|
20
|
+
default = %w{--order random:123 --format documentation --out _reports/specs.txt --backtrace}
|
21
21
|
default << '--colour' if $stdout.isatty && !(RbConfig::CONFIG['host_os'] =~ /mswin|win32|dos/i)
|
22
22
|
default
|
23
23
|
end
|
@@ -34,24 +34,13 @@ end
|
|
34
34
|
desc 'Run all specs'
|
35
35
|
RSpec::Core::RakeTask.new :spec => ['_reports', :compile] do |task|
|
36
36
|
ENV['USE_FSC'] = 'no'
|
37
|
-
|
38
|
-
|
39
|
-
task.
|
40
|
-
task.rspec_opts = %w{--format html --out _reports/specs.html --backtrace}
|
37
|
+
files = FileList['spec/**/*_spec.rb']
|
38
|
+
files = files.delete_if {|f| f =~ /^spec\/groovy\//} if RUBY_PLATFORM[/java/]
|
39
|
+
task.rspec_files = files
|
40
|
+
task.rspec_opts = %w{--order random:123 --format html --out _reports/specs.html --backtrace}
|
41
41
|
end
|
42
42
|
file('_reports/specs.html') { task(:spec).invoke }
|
43
43
|
|
44
|
-
desc 'Run RSpec and generate Spec and coverage reports (slow)'
|
45
|
-
RSpec::Core::RakeTask.new :coverage => ['_reports', :compile] do |task|
|
46
|
-
ENV['USE_FSC'] = 'no'
|
47
|
-
task.rspec_files = FileList['spec/**/*_spec.rb']
|
48
|
-
task.rspec_files.exclude('spec/groovy/*') if RUBY_PLATFORM[/java/]
|
49
|
-
task.rspec_opts = default_spec_opts
|
50
|
-
task.rcov = true
|
51
|
-
task.rcov_opts = %w{-o _reports/coverage --exclude / --include-file ^lib --text-summary}
|
52
|
-
end
|
53
|
-
file('_reports/coverage') { task(:coverage).invoke }
|
54
|
-
|
55
44
|
task :load_ci_reporter do
|
56
45
|
gem 'ci_reporter'
|
57
46
|
ENV['CI_REPORTS'] = '_reports/ci'
|
@@ -64,39 +53,6 @@ end
|
|
64
53
|
desc 'Run all specs with CI reporter'
|
65
54
|
task 'ci' => %w(clobber load_ci_reporter spec)
|
66
55
|
|
67
|
-
def rvm_run_in(version, command)
|
68
|
-
if !(RbConfig::CONFIG['host_os'] =~ /mswin|win32|dos/i)
|
69
|
-
cmd_prefix = "rvm #{version} exec"
|
70
|
-
sh "rm -f Gemfile.lock; #{cmd_prefix} bundle install; #{cmd_prefix} bundle exec #{command}"
|
71
|
-
else
|
72
|
-
sh "#{version =~ /jruby/ ? "j" : ""}ruby -S #{command}"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# Useful for testing with JRuby when using Ruby and vice versa.
|
77
|
-
namespace 'spec' do
|
78
|
-
desc 'Run all specs specifically with Ruby 1.9'
|
79
|
-
task 'ruby_1_9' do
|
80
|
-
puts 'Running test suite using Ruby ...'
|
81
|
-
rvm_run_in('ruby-1.9.2-p320@buildr', 'rake spec')
|
82
|
-
end
|
83
|
-
|
84
|
-
desc 'Run all specs specifically with Ruby 1.8'
|
85
|
-
task 'ruby_1_8' do
|
86
|
-
puts 'Running test suite using Ruby ...'
|
87
|
-
rvm_run_in('ruby-1.8.7-p358@buildr', 'rake spec')
|
88
|
-
end
|
89
|
-
|
90
|
-
desc 'Run all specs specifically with JRuby'
|
91
|
-
task 'jruby' do
|
92
|
-
puts 'Running test suite using JRuby ...'
|
93
|
-
rvm_run_in('jruby-1.6.7@buildr', 'rake spec')
|
94
|
-
end
|
95
|
-
|
96
|
-
desc 'Run all specs across various rubies'
|
97
|
-
task 'all' => %w(jruby ruby_1_8 ruby_1_9)
|
98
|
-
end
|
99
|
-
|
100
56
|
task 'clobber' do
|
101
57
|
rm_f 'failed'
|
102
58
|
rm_rf '_reports'
|
data/rakelib/stage.rake
CHANGED
@@ -19,6 +19,8 @@ require 'digest/sha1'
|
|
19
19
|
|
20
20
|
gpg_cmd = 'gpg2'
|
21
21
|
|
22
|
+
STAGE_DATE = '2013-10-02'
|
23
|
+
|
22
24
|
task 'prepare' do |task, args|
|
23
25
|
gpg_arg = args.gpg || ENV['gpg']
|
24
26
|
|
@@ -45,12 +47,12 @@ task 'prepare' do |task, args|
|
|
45
47
|
git = `git status -s`
|
46
48
|
fail "Cannot release unless all local changes are in Git:\n#{git}" if git[/^ M/] && ENV["IGNORE_GIT"].nil?
|
47
49
|
puts '[X] There are no local changes, everything is in source control'
|
48
|
-
end.call
|
50
|
+
end.call if false
|
49
51
|
|
50
52
|
# Make sure we have a valid CHANGELOG entry for this release.
|
51
53
|
lambda do
|
52
54
|
puts 'Checking that CHANGELOG indicates most recent version and today''s date ... '
|
53
|
-
expecting = "#{spec.version} (#{
|
55
|
+
expecting = "#{spec.version} (#{STAGE_DATE})"
|
54
56
|
header = File.readlines('CHANGELOG').first.chomp
|
55
57
|
fail "Expecting CHANGELOG to start with #{expecting}, but found #{header} instead" unless expecting == header
|
56
58
|
puts '[x] CHANGELOG indicates most recent version and today''s date'
|
@@ -59,7 +61,7 @@ task 'prepare' do |task, args|
|
|
59
61
|
# Make sure we have a valid CHANGELOG entry for this release.
|
60
62
|
lambda do
|
61
63
|
puts 'Checking that doc/index.textile indicates most recent version and today''s date ... '
|
62
|
-
expecting = "Highlights from Buildr #{spec.version} (#{
|
64
|
+
expecting = "Highlights from Buildr #{spec.version} (#{STAGE_DATE})"
|
63
65
|
content = IO.read('doc/index.textile')
|
64
66
|
fail "Expecting doc/index.textile to contain #{expecting}" unless content.include?(expecting)
|
65
67
|
puts '[x] doc/index.textile indicates most recent version and today''s date'
|
@@ -116,7 +118,7 @@ task 'stage' => %w(clobber prepare) do |task, args|
|
|
116
118
|
current = changes[spec.version.to_s]
|
117
119
|
fail "No changeset found for version #{spec.version}" unless current
|
118
120
|
File.open '_staged/CHANGES', 'w' do |file|
|
119
|
-
file.write "#{spec.version} (#{
|
121
|
+
file.write "#{spec.version} (#{STAGE_DATE})\n"
|
120
122
|
file.write current
|
121
123
|
end
|
122
124
|
puts '[X] Listed most recent changed in _staged/CHANGES'
|
@@ -151,7 +153,7 @@ task 'stage' => %w(clobber prepare) do |task, args|
|
|
151
153
|
%{| "#{name}":#{mirror}/#{name} | "#{md5}":#{official}/#{name}.md5 | "Sig":#{official}/#{name}.asc |}
|
152
154
|
}
|
153
155
|
textile = <<-TEXTILE
|
154
|
-
h3. #{spec.name} #{spec.version} (#{
|
156
|
+
h3. #{spec.name} #{spec.version} (#{STAGE_DATE})
|
155
157
|
|
156
158
|
|_. Package |_. MD5 Checksum |_. PGP |
|
157
159
|
#{rows.join("\n")}
|
data/spec/addon/jaxb_xjc_spec.rb
CHANGED
@@ -13,9 +13,9 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
if Java.java.lang.System.getProperty("java.runtime.version") >= "1.6"
|
17
|
-
|
18
16
|
require File.expand_path('../spec_helpers', File.dirname(__FILE__))
|
17
|
+
|
18
|
+
if Java.java.lang.System.getProperty("java.runtime.version") >= "1.6"
|
19
19
|
Sandbox.require_optional_extension 'buildr/jaxb_xjc'
|
20
20
|
|
21
21
|
XSD_CONTENT = <<XSD
|
@@ -33,7 +33,7 @@ describe Buildr::Application do
|
|
33
33
|
it 'should execute *_load methods in order' do
|
34
34
|
order = [:load_gems, :load_artifact_ns, :load_tasks, :raw_load_buildfile]
|
35
35
|
order.each { |method| Buildr.application.should_receive(method).ordered }
|
36
|
-
Buildr.application.stub
|
36
|
+
Buildr.application.stub(:exit) # With this, shows the correct error instead of SystemExit.
|
37
37
|
Buildr.application.run
|
38
38
|
end
|
39
39
|
|
@@ -43,7 +43,7 @@ describe Buildr::Application do
|
|
43
43
|
Buildr.application.should_receive(:load_imports)
|
44
44
|
method.call
|
45
45
|
end
|
46
|
-
Buildr.application.stub
|
46
|
+
Buildr.application.stub(:exit) # With this, shows the correct error instead of SystemExit.
|
47
47
|
Buildr.application.run
|
48
48
|
end
|
49
49
|
|
@@ -51,7 +51,7 @@ describe Buildr::Application do
|
|
51
51
|
Buildr.application.should_receive(:load_imports) do
|
52
52
|
Buildr.should_receive(:projects)
|
53
53
|
end
|
54
|
-
Buildr.application.stub
|
54
|
+
Buildr.application.stub(:exit) # With this, shows the correct error instead of SystemExit.
|
55
55
|
Buildr.application.run
|
56
56
|
end
|
57
57
|
end
|
@@ -174,7 +174,7 @@ describe Buildr::Application do
|
|
174
174
|
spec.name = 'buildr-foo'
|
175
175
|
spec.version = '1.2'
|
176
176
|
end
|
177
|
-
$stdout.stub
|
177
|
+
$stdout.stub(:isatty).and_return(true)
|
178
178
|
end
|
179
179
|
|
180
180
|
it 'should do nothing if no gems specified' do
|
@@ -495,19 +495,19 @@ describe Buildr, 'settings' do
|
|
495
495
|
end
|
496
496
|
|
497
497
|
it 'should have the same timestamp as the buildfile' do
|
498
|
-
Buildr.application.buildfile.timestamp.should
|
498
|
+
Buildr.application.buildfile.timestamp.should be_within(1).of(@buildfile_time)
|
499
499
|
end
|
500
500
|
|
501
501
|
it 'should have the same timestamp as build.yaml if the latter is newer' do
|
502
502
|
write 'build.yaml'; File.utime(@buildfile_time + 5, @buildfile_time + 5, 'build.yaml')
|
503
503
|
Buildr.application.run
|
504
|
-
Buildr.application.buildfile.timestamp.should
|
504
|
+
Buildr.application.buildfile.timestamp.should be_within(1).of(@buildfile_time + 5)
|
505
505
|
end
|
506
506
|
|
507
507
|
it 'should have the same timestamp as the buildfile if build.yaml is older' do
|
508
508
|
write 'build.yaml'; File.utime(@buildfile_time - 5, @buildfile_time - 5, 'build.yaml')
|
509
509
|
Buildr.application.run
|
510
|
-
Buildr.application.buildfile.timestamp.should
|
510
|
+
Buildr.application.buildfile.timestamp.should be_within(1).of(@buildfile_time)
|
511
511
|
end
|
512
512
|
|
513
513
|
it 'should have the same timestamp as build.rb in home dir if the latter is newer (until version 1.6)' do
|
@@ -530,7 +530,7 @@ describe Buildr, 'settings' do
|
|
530
530
|
def buildfile_should_have_same_timestamp_as(file)
|
531
531
|
write file; File.utime(@buildfile_time + 5, @buildfile_time + 5, file)
|
532
532
|
Buildr.application.send :load_tasks
|
533
|
-
Buildr.application.buildfile.timestamp.should
|
533
|
+
Buildr.application.buildfile.timestamp.should be_within(1).of(@buildfile_time + 5)
|
534
534
|
end
|
535
535
|
end
|
536
536
|
end
|
data/spec/core/build_spec.rb
CHANGED
@@ -335,16 +335,16 @@ end # of Git
|
|
335
335
|
describe Svn do
|
336
336
|
describe '#tag' do
|
337
337
|
it 'should remove any existing tag with the same name' do
|
338
|
-
Svn.stub
|
339
|
-
Svn.stub
|
338
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/trunk')
|
339
|
+
Svn.stub(:copy)
|
340
340
|
Svn.should_receive(:remove).with('http://my.repo.org/foo/tags/1.0.0', 'Removing old copy')
|
341
341
|
|
342
342
|
Svn.tag '1.0.0'
|
343
343
|
end
|
344
344
|
|
345
345
|
it 'should do an svn copy with the release version' do
|
346
|
-
Svn.stub
|
347
|
-
Svn.stub
|
346
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/trunk')
|
347
|
+
Svn.stub(:remove)
|
348
348
|
Svn.should_receive(:copy).with(Dir.pwd, 'http://my.repo.org/foo/tags/1.0.0', 'Release 1.0.0')
|
349
349
|
|
350
350
|
Svn.tag '1.0.0'
|
@@ -444,47 +444,47 @@ shared_examples_for 'a release process' do
|
|
444
444
|
before do
|
445
445
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-SNAPSHOT'"
|
446
446
|
# Prevent a real call to a spawned buildr process.
|
447
|
-
@release.stub
|
448
|
-
@release.stub
|
449
|
-
@release.should_receive(:
|
447
|
+
@release.stub(:buildr)
|
448
|
+
@release.stub(:check)
|
449
|
+
@release.should_receive(:sh).with('buildr', '--buildfile', File.expand_path('buildfile.next'),
|
450
450
|
'--environment', 'development', 'clean', 'upload', 'DEBUG=no')
|
451
451
|
end
|
452
452
|
|
453
453
|
it 'should tag a release with the release version' do
|
454
|
-
@release.stub
|
454
|
+
@release.stub(:update_version_to_next)
|
455
455
|
@release.should_receive(:tag_release).with('1.0.0')
|
456
456
|
@release.make
|
457
457
|
end
|
458
458
|
|
459
459
|
it 'should not alter the buildfile before tagging' do
|
460
|
-
@release.stub
|
460
|
+
@release.stub(:update_version_to_next)
|
461
461
|
@release.should_receive(:tag_release).with('1.0.0')
|
462
462
|
@release.make
|
463
463
|
file('buildfile').should contain('VERSION_NUMBER = "1.0.0"')
|
464
464
|
end
|
465
465
|
|
466
466
|
it 'should update the buildfile with the next version number' do
|
467
|
-
@release.stub
|
467
|
+
@release.stub(:tag_release)
|
468
468
|
@release.make
|
469
469
|
file('buildfile').should contain('VERSION_NUMBER = "1.0.1-SNAPSHOT"')
|
470
470
|
end
|
471
471
|
|
472
472
|
it 'should keep leading zeros in the next version number' do
|
473
473
|
write 'buildfile', "VERSION_NUMBER = '1.0.001-SNAPSHOT'"
|
474
|
-
@release.stub
|
474
|
+
@release.stub(:tag_release)
|
475
475
|
@release.make
|
476
476
|
file('buildfile').should contain('VERSION_NUMBER = "1.0.002-SNAPSHOT"')
|
477
477
|
end
|
478
478
|
|
479
479
|
it 'should commit the updated buildfile' do
|
480
|
-
@release.stub
|
480
|
+
@release.stub(:tag_release)
|
481
481
|
@release.make
|
482
482
|
file('buildfile').should contain('VERSION_NUMBER = "1.0.1-SNAPSHOT"')
|
483
483
|
end
|
484
484
|
|
485
485
|
it 'should not consider "-rc" as "-SNAPSHOT"' do
|
486
486
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-rc1'"
|
487
|
-
@release.stub
|
487
|
+
@release.stub(:tag_release)
|
488
488
|
@release.make
|
489
489
|
file('buildfile').should contain('VERSION_NUMBER = "1.0.0-rc1"')
|
490
490
|
end
|
@@ -492,7 +492,7 @@ shared_examples_for 'a release process' do
|
|
492
492
|
it 'should only commit the updated buildfile if the version changed' do
|
493
493
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-rc1'"
|
494
494
|
@release.should_not_receive(:update_version_to_next)
|
495
|
-
@release.stub
|
495
|
+
@release.stub(:tag_release)
|
496
496
|
@release.make
|
497
497
|
end
|
498
498
|
end
|
@@ -631,7 +631,7 @@ shared_examples_for 'a release process' do
|
|
631
631
|
|
632
632
|
describe '#resolve_tag' do
|
633
633
|
before do
|
634
|
-
@release.stub
|
634
|
+
@release.stub(:extract_version).and_return('1.0.0')
|
635
635
|
end
|
636
636
|
|
637
637
|
it 'should return tag specified by tag_name' do
|
@@ -648,7 +648,7 @@ shared_examples_for 'a release process' do
|
|
648
648
|
|
649
649
|
describe '#tag_release' do
|
650
650
|
it 'should inform the user' do
|
651
|
-
@release.stub
|
651
|
+
@release.stub(:extract_version).and_return('1.0.0')
|
652
652
|
lambda { @release.tag_release('1.0.0') }.should show_info('Tagging release 1.0.0')
|
653
653
|
end
|
654
654
|
end
|
@@ -682,7 +682,7 @@ shared_examples_for 'a release process' do
|
|
682
682
|
|
683
683
|
describe '#with_release_candidate_version' do
|
684
684
|
before do
|
685
|
-
Buildr.application.stub
|
685
|
+
Buildr.application.stub(:buildfile).and_return(file('buildfile'))
|
686
686
|
write 'buildfile', "THIS_VERSION = '1.1.0-SNAPSHOT'"
|
687
687
|
end
|
688
688
|
|
@@ -741,7 +741,7 @@ shared_examples_for 'a release process' do
|
|
741
741
|
describe '#check' do
|
742
742
|
before { @release.send(:this_version=, "1.0.0-SNAPSHOT") }
|
743
743
|
it 'should fail if THIS_VERSION equals the next_version' do
|
744
|
-
@release.stub
|
744
|
+
@release.stub(:resolve_next_version).and_return('1.0.0-SNAPSHOT')
|
745
745
|
lambda { @release.check }.should raise_error("The next version can't be equal to the current version 1.0.0-SNAPSHOT.\nUpdate THIS_VERSION/VERSION_NUMBER, specify Release.next_version or use NEXT_VERSION env var")
|
746
746
|
end
|
747
747
|
end
|
@@ -754,9 +754,9 @@ describe HgRelease do
|
|
754
754
|
before do
|
755
755
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-SNAPSHOT'"
|
756
756
|
@release = HgRelease.new
|
757
|
-
Hg.stub
|
758
|
-
Hg.stub
|
759
|
-
Hg.stub
|
757
|
+
Hg.stub(:hg)
|
758
|
+
Hg.stub(:remote).and_return('https://bitbucket.org/sample-repo')
|
759
|
+
Hg.stub(:current_branch).and_return('default')
|
760
760
|
end
|
761
761
|
|
762
762
|
describe '#applies_to?' do
|
@@ -806,8 +806,8 @@ describe GitRelease do
|
|
806
806
|
before do
|
807
807
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-SNAPSHOT'"
|
808
808
|
@release = GitRelease.new
|
809
|
-
Git.stub
|
810
|
-
Git.stub
|
809
|
+
Git.stub(:git)
|
810
|
+
Git.stub(:current_branch).and_return('master')
|
811
811
|
end
|
812
812
|
|
813
813
|
describe '#applies_to?' do
|
@@ -866,13 +866,13 @@ EOF
|
|
866
866
|
describe '#tag_release' do
|
867
867
|
before do
|
868
868
|
@release = GitRelease.new
|
869
|
-
@release.stub
|
870
|
-
@release.stub
|
871
|
-
Git.stub
|
872
|
-
Git.stub
|
873
|
-
Git.stub
|
874
|
-
Git.stub
|
875
|
-
Git.stub
|
869
|
+
@release.stub(:extract_version).and_return('1.0.1')
|
870
|
+
@release.stub(:resolve_tag).and_return('TEST_TAG')
|
871
|
+
Git.stub(:git).with('tag', '-a', 'TEST_TAG', '-m', '[buildr] Cutting release TEST_TAG')
|
872
|
+
Git.stub(:git).with('push', 'origin', 'tag', 'TEST_TAG')
|
873
|
+
Git.stub(:commit)
|
874
|
+
Git.stub(:push)
|
875
|
+
Git.stub(:remote).and_return('origin')
|
876
876
|
end
|
877
877
|
|
878
878
|
it 'should delete any existing tag with the same name' do
|
@@ -895,7 +895,7 @@ EOF
|
|
895
895
|
end
|
896
896
|
|
897
897
|
it 'should NOT push the tag if no remote is tracked' do
|
898
|
-
Git.stub
|
898
|
+
Git.stub(:remote).and_return(nil)
|
899
899
|
Git.should_not_receive(:git).with('push', 'origin', 'tag', 'TEST_TAG')
|
900
900
|
@release.tag_release 'TEST_TAG'
|
901
901
|
end
|
@@ -909,9 +909,9 @@ describe SvnRelease do
|
|
909
909
|
before do
|
910
910
|
write 'buildfile', "VERSION_NUMBER = '1.0.0-SNAPSHOT'"
|
911
911
|
@release = SvnRelease.new
|
912
|
-
Svn.stub
|
913
|
-
Svn.stub
|
914
|
-
Svn.stub
|
912
|
+
Svn.stub(:svn)
|
913
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/trunk')
|
914
|
+
Svn.stub(:tag)
|
915
915
|
end
|
916
916
|
|
917
917
|
describe '#applies_to?' do
|
@@ -927,34 +927,34 @@ describe SvnRelease do
|
|
927
927
|
|
928
928
|
describe '#check' do
|
929
929
|
before do
|
930
|
-
Svn.stub
|
930
|
+
Svn.stub(:uncommitted_files).and_return([])
|
931
931
|
@release = SvnRelease.new
|
932
932
|
@release.send(:this_version=, "1.0.0-SNAPSHOT")
|
933
933
|
end
|
934
934
|
|
935
935
|
it 'should accept to release from the trunk' do
|
936
|
-
Svn.stub
|
936
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/trunk')
|
937
937
|
lambda { @release.check }.should_not raise_error
|
938
938
|
end
|
939
939
|
|
940
940
|
it 'should accept to release from a branch' do
|
941
|
-
Svn.stub
|
941
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/branches/1.0')
|
942
942
|
lambda { @release.check }.should_not raise_error
|
943
943
|
end
|
944
944
|
|
945
945
|
it 'should reject releasing from a tag' do
|
946
|
-
Svn.stub
|
946
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/tags/1.0.0')
|
947
947
|
lambda { @release.check }.should raise_error(RuntimeError, "SVN URL must contain 'trunk' or 'branches/...'")
|
948
948
|
end
|
949
949
|
|
950
950
|
it 'should reject a non standard repository layout' do
|
951
|
-
Svn.stub
|
951
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/bar')
|
952
952
|
lambda { @release.check }.should raise_error(RuntimeError, "SVN URL must contain 'trunk' or 'branches/...'")
|
953
953
|
end
|
954
954
|
|
955
955
|
it 'should reject an uncommitted file' do
|
956
|
-
Svn.stub
|
957
|
-
Svn.stub
|
956
|
+
Svn.stub(:repo_url).and_return('http://my.repo.org/foo/trunk')
|
957
|
+
Svn.stub(:uncommitted_files).and_return(['foo.rb'])
|
958
958
|
lambda { @release.check }.should raise_error(RuntimeError,
|
959
959
|
"Uncommitted files violate the First Principle Of Release!\n" +
|
960
960
|
"foo.rb")
|