release: added minor and major

This commit is contained in:
rkiel
2017-09-19 22:25:18 -04:00
parent 9ff65e7e1e
commit 005d780fc6
3 changed files with 80 additions and 0 deletions

View File

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

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

@@ -0,0 +1,39 @@
require_relative './base'
module Release
class Major < Release::Base
def valid?
argv.size > 1
end
def help
"release major 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
major_branch = major(version)
git_pull current_branch
git_local_branch_create major_branch, "v#{version}"
git_push major_branch
end
private
def major (version)
numbers = version.split('.').map { |x| x.to_i }
"#{numbers[0]+1}.0.0"
end
end
end

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

@@ -0,0 +1,39 @@
require_relative './base'
module Release
class Minor < Release::Base
def valid?
argv.size > 1
end
def help
"release minor 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
minor_branch = minor(version)
git_pull current_branch
git_local_branch_create minor_branch, "v#{version}"
git_push minor_branch
end
private
def minor (version)
numbers = version.split('.').map { |x| x.to_i }
"#{numbers[0]}.#{numbers[1]+1}.0"
end
end
end