3-start: renamed major,minor,patch to just start
This commit is contained in:
61
lib/release/start.rb
Normal file
61
lib/release/start.rb
Normal file
@@ -0,0 +1,61 @@
|
||||
require_relative './base'
|
||||
|
||||
module Release
|
||||
|
||||
class Start < Release::Base
|
||||
def valid?
|
||||
argv.size == 3 or argv.size == 4
|
||||
end
|
||||
|
||||
def help
|
||||
"release start (major|minor|patch) [from] version"
|
||||
end
|
||||
|
||||
def execute
|
||||
case argv.size
|
||||
when 3
|
||||
subcommand, level, version = *argv
|
||||
when 4
|
||||
subcommand, level, verb, version = *argv
|
||||
end
|
||||
|
||||
validate_version_format version
|
||||
|
||||
validate_current_branch_master
|
||||
git_pull current_branch
|
||||
|
||||
validate_version_exists version
|
||||
|
||||
numbers = version.split('.').map { |x| x.to_i }
|
||||
case level
|
||||
when 'major'
|
||||
new_version = "#{numbers[0]+1}.0.0"
|
||||
when 'minor'
|
||||
new_version = "#{numbers[0]}.#{numbers[1]+1}.0"
|
||||
when 'patch'
|
||||
new_version = "#{numbers[0]}.#{numbers[1]}.#{numbers[2]+1}"
|
||||
else
|
||||
error "unknow release level: #{level}"
|
||||
end
|
||||
|
||||
validate_version_does_not_exist new_version
|
||||
validate_release_branch_does_not_exist(release_branch_from_version(new_version))
|
||||
|
||||
git_local_branch_create release_branch_from_version(new_version), release_tag_from_version(version)
|
||||
|
||||
git_push release_branch_from_version(new_version)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def subcommand_name
|
||||
error "override"
|
||||
end
|
||||
|
||||
def increment_version (version)
|
||||
error "override"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user