class PivotalIntegration::Command::Release
The class that encapsulates releasing a Pivotal Tracker Story
Public Instance Methods
run(filter)
click to toggle source
Releases a Pivotal Tracker story by doing the following steps:
-
Update the version to the release version
-
Create a tag for the release version
-
Update the version to the new development version
-
Push tag and changes to remote
@param [String, nil] filter a filter for selecting the release to start. This
filter can be either: * a story id * +nil+
@return [void]
# File lib/pivotal-integration/command/release.rb, line 34 def run(filter) story = PivotalIntegration::Util::Story.select_story(@project, filter.nil? ? 'release' : filter, 1) PivotalIntegration::Util::Story.pretty_print story updater = [ PivotalIntegration::VersionUpdate::Gradle.new(@repository_root) ].find { |candidate| candidate.supports? } current_version = updater.current_version release_version = ask("Enter release version (current: #{current_version}): ") next_version = ask("Enter next development version (current: #{current_version}): ") updater.update_version release_version PivotalIntegration::Util::Git.create_release_tag release_version, story updater.update_version next_version PivotalIntegration::Util::Git.create_commit "#{next_version} Development", story PivotalIntegration::Util::Git.push PivotalIntegration::Util::Git.branch_name, "v#{release_version}" end