Class: Buildr::SvnRelease

Inherits:
Release show all
Defined in:
lib/buildr/core/build.rb

Constant Summary

Constants inherited from Release

Release::THIS_VERSION_PATTERN

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Release

add, #extract_version, find, list, #make, #tag_name=

Class Method Details

.applies_to?Boolean

Returns:

  • (Boolean)


476
477
478
# File 'lib/buildr/core/build.rb', line 476

def applies_to?
  File.exist?('.svn')
end

Instance Method Details

#checkObject



481
482
483
484
485
# File 'lib/buildr/core/build.rb', line 481

def check
  super
  fail "Uncommitted files violate the First Principle Of Release!\n"+Svn.uncommitted_files.join("\n") unless Svn.uncommitted_files.empty?
  fail "SVN URL must contain 'trunk' or 'branches/...'" unless Svn.repo_url =~ /(trunk)|(branches.*)$/
end

#tag_release(tag) ⇒ Object



487
488
489
490
491
492
# File 'lib/buildr/core/build.rb', line 487

def tag_release(tag)
  # Unlike Git, committing the buildfile with the released version is not necessary.
  # svn tag does commit & tag.
  info "Tagging release #{tag}"
  Svn.tag tag
end

#update_version_to_nextObject



494
495
496
497
498
# File 'lib/buildr/core/build.rb', line 494

def update_version_to_next
  super
  info "Current version is now #{extract_version}"
  Svn.commit Buildr.application.buildfile.to_s, message
end