From 1b2f3c019407b7bbd5824d58977ff61fd8531724 Mon Sep 17 00:00:00 2001 From: rkiel Date: Tue, 19 Sep 2017 23:08:28 -0400 Subject: [PATCH] release: added finish --- lib/release/commander.rb | 1 + lib/release/finish.rb | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 lib/release/finish.rb diff --git a/lib/release/commander.rb b/lib/release/commander.rb index 34b8ef2..66282e1 100644 --- a/lib/release/commander.rb +++ b/lib/release/commander.rb @@ -5,6 +5,7 @@ module Release class Commander COMMANDS = [ + :finish, :help, :init, :major, diff --git a/lib/release/finish.rb b/lib/release/finish.rb new file mode 100644 index 0000000..6739411 --- /dev/null +++ b/lib/release/finish.rb @@ -0,0 +1,39 @@ +require_relative './base' + +module Release + + class Finish < Release::Base + def valid? + argv.size == 1 + end + + def help + "release finish" + end + + def execute + release_branch = current_branch + + error "invalid release branch: #{release_branch}" unless release_branch =~ /\d+\.\d+\.\d+/ + + git_pull release_branch + + git_local_tag release_branch + + git_push release_branch + + git_push_tags + + git_checkout "master" + + git_local_branch_delete release_branch + + if remote_branch(release_branch) != "" + git_remote_branch_delete release_branch + end + + git_prune + end + end + +end