46 lines
898 B
Ruby
46 lines
898 B
Ruby
require_relative './base'
|
|
|
|
module Release
|
|
|
|
class NewVersion < Release::Base
|
|
def valid?
|
|
argv.size > 1
|
|
end
|
|
|
|
def help
|
|
"release #{subcommand_name} version"
|
|
end
|
|
|
|
def execute
|
|
subcommand, version, *extras = *argv
|
|
|
|
validate_version_format version
|
|
|
|
validate_current_branch_master
|
|
git_pull current_branch
|
|
|
|
validate_version_exists version
|
|
|
|
new_version = increment_version(version)
|
|
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
|