lib/hu/deploy.rb in hu-1.2.3 vs lib/hu/deploy.rb in hu-1.2.4
- old
+ new
@@ -92,11 +92,15 @@
busy 'update working copy', :dots
wc_update.join
unbusy
highest_version = find_highest_version_tag
- likely_next_version = Versionomy.parse(highest_version).bump(:tiny).to_s
+ tiny_bump = Versionomy.parse(highest_version).bump(:tiny).to_s
+ minor_bump = Versionomy.parse(highest_version).bump(:minor).to_s
+ major_bump = Versionomy.parse(highest_version).bump(:major).to_s
+ likely_next_version = tiny_bump
+
release_tag, branch_already_exists = prompt_for_release_tag(likely_next_version, likely_next_version, true)
prompt = TTY::Prompt.new
clearscreen = true
@@ -125,14 +129,25 @@
choice = prompt.select("Choose your destiny") do |menu|
menu.enum '.'
menu.choice "Refresh", :refresh
menu.choice "Quit", :abort_ask
unless git_revisions[:release] == git_revisions[stag_app_name] or !release_branch_exists
- menu.choice "Push release/#{release_tag} to #{stag_app_name}", :push_to_staging
+ menu.choice "Push release/#{release_tag} to #{stag_app_name}", :push_to_staging
end
if release_branch_exists
- menu.choice "Delete release/#{release_tag} and start new release from develop", :retag
+ unless release_tag == tiny_bump
+ menu.choice "Change to PATCH release (bugfix only) : #{highest_version} -> #{tiny_bump}", :bump_tiny
+ end
+
+ unless release_tag == minor_bump
+ menu.choice "Change to MINOR release (new features) : #{highest_version} -> #{minor_bump}", :bump_minor
+ end
+
+ unless release_tag == major_bump
+ menu.choice "Change to MAJOR release (breaking changes): #{highest_version} -> #{major_bump}", :bump_major
+ end
+
if git_revisions[:release] == git_revisions[stag_app_name]
menu.choice "Finish release (merge, tag and final stage)", :finish_release
end
elsif git_revisions[prod_app_name] != git_revisions[stag_app_name]
menu.choice "DEPLOY (promote #{stag_app_name} to #{prod_app_name})", :DEPLOY
@@ -163,12 +178,20 @@
puts
anykey
when :abort_ask
puts if delete_branch("release/#{release_tag}")
exit 0
- when :retag
+ when :bump_tiny
if delete_branch("release/#{release_tag}")
- release_tag, branch_already_exists = prompt_for_release_tag(likely_next_version)
+ release_tag, branch_already_exists = prompt_for_release_tag(tiny_bump, tiny_bump)
+ end
+ when :bump_minor
+ if delete_branch("release/#{release_tag}")
+ release_tag, branch_already_exists = prompt_for_release_tag(minor_bump, minor_bump)
+ end
+ when :bump_major
+ if delete_branch("release/#{release_tag}")
+ release_tag, branch_already_exists = prompt_for_release_tag(major_bump, major_bump)
end
end
end
end