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)


557
558
559
# File 'lib/buildr/core/build.rb', line 557

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

Instance Method Details

#checkObject



562
563
564
565
566
# File 'lib/buildr/core/build.rb', line 562

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



568
569
570
571
572
573
# File 'lib/buildr/core/build.rb', line 568

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



575
576
577
578
579
# File 'lib/buildr/core/build.rb', line 575

def update_version_to_next
  super
  info "Current version is now #{extract_version}"
  Svn.commit version_file, message
end