release: added patch

This commit is contained in:
rkiel
2017-09-19 22:18:18 -04:00
parent ee817d2230
commit 9ff65e7e1e
6 changed files with 47 additions and 7 deletions

View File

@@ -22,7 +22,7 @@ module Feature
feature_branch = current_branch feature_branch = current_branch
error "invalid branch: #{merge_to_branch}" unless standard_branches.include? merge_to_branch error "invalid branch: #{merge_to_branch}" unless standard_branches.include? merge_to_branch or merge_to_branch =~ /\d+\.\d+\.\d+/
git_checkout merge_to_branch git_checkout merge_to_branch
git_pull merge_to_branch git_pull merge_to_branch

View File

@@ -17,7 +17,7 @@ module Feature
feature_name = feature_words.join('-') feature_name = feature_words.join('-')
feature_branch = "#{ENV['FEATURE_USER']||ENV['USER']}-#{current_branch}-#{feature_name}" feature_branch = "#{ENV['FEATURE_USER']||ENV['USER']}-#{current_branch}-#{feature_name}"
error "invalid base branch: #{current_branch}" unless standard_branches.include? current_branch error "invalid base branch: #{current_branch}" unless standard_branches.include? current_branch or current_branch =~ /\d+\.\d+\.\d+/
error "invalid feature branch: #{feature_name}" if standard_branches.include? feature_name error "invalid feature branch: #{feature_name}" if standard_branches.include? feature_name
git_pull current_branch git_pull current_branch

View File

@@ -6,7 +6,8 @@ module Release
COMMANDS = [ COMMANDS = [
:help, :help,
:init :init,
:patch
].sort ].sort
DEFAULT = :help DEFAULT = :help

39
lib/release/patch.rb Normal file
View File

@@ -0,0 +1,39 @@
require_relative './base'
module Release
class Patch < Release::Base
def valid?
argv.size > 1
end
def help
"release patch version"
end
def execute
subcommand, version, *extras = *argv
error "invalid version: #{version}" unless version =~ /\d+\.\d+\.\d+/
error "unknown version: #{git_local_list_tags.join(' ')}" unless git_local_list_tags.include? "v#{version}"
error "invalid base branch: #{current_branch}" unless standard_branches.include? current_branch
patch_branch = patch(version)
git_pull current_branch
git_local_branch_create patch_branch, "v#{version}"
git_push patch_branch
end
private
def patch (version)
numbers = version.split('.').map { |x| x.to_i }
"#{numbers[0]}.#{numbers[1]}.#{numbers[2]+1}"
end
end
end

View File

@@ -20,7 +20,7 @@ module Shared
user = parts.shift user = parts.shift
standard = parts.shift standard = parts.shift
error "invalid user: #{user}" unless [ENV['FEATURE_USER'],ENV['USER']].include? user error "invalid user: #{user}" unless [ENV['FEATURE_USER'],ENV['USER']].include? user
error "invalid branch: #{standard}" unless standard_branches.include? standard error "invalid branch: #{standard}" unless standard_branches.include? standard or standard =~ /\d+\.\d+\.\d+/
feature = parts.join('-') feature = parts.join('-')
{ user: user, standard: standard, feature: feature } { user: user, standard: standard, feature: feature }
end end

View File

@@ -44,7 +44,7 @@ module Shared
end end
def git_local_list_tags def git_local_list_tags
`git tag -l 'v*'`.strip.split(/\s+/) `git tag -l 'v*'`.strip.split(/\s+/).sort
end end
def git_prune def git_prune
@@ -71,8 +71,8 @@ module Shared
run_cmd "git rebase #{branch}" run_cmd "git rebase #{branch}"
end end
def git_local_branch_create (branch) def git_local_branch_create (branch, commit='')
run_cmd "git checkout -b #{branch}" run_cmd "git checkout -b #{branch} #{commit}"
end end
def git_commit (message, force = false) def git_commit (message, force = false)