diff --git a/Makefile b/Makefile index e26897d..77478a7 100644 --- a/Makefile +++ b/Makefile @@ -19,12 +19,12 @@ changeset: .PHONY: version version: - ruby tool/changeset_version.rb + ruby tool/changeset_version.rb $(v) .PHONY: changelog changelog: ruby tool/changeset_changelog.rb .PHONY: prepare-release prepare-release: - ruby tool/changeset_version.rb + ruby tool/changeset_version.rb $(v) ruby tool/changeset_changelog.rb diff --git a/README.md b/README.md index e201a82..d367f46 100644 --- a/README.md +++ b/README.md @@ -106,10 +106,30 @@ $ make changeset ## Releasing on Rubygems.org -To build and release: +### CI Workflow Release: + +- *Coming soon* + + +### Manual Release: + +1. Bump the version & generate a changelog: + +```sh +$ make prepare-release +``` + +- To version manually: +```sh +$ make prepare-release v=x.x.x +``` + +2. To build and release: ```sh $ cd turnkey_client $ gem build turnkey_client.gemspec $ gem push turnkey_client-x.y.z.gem ``` + + diff --git a/tool/changeset_version.rb b/tool/changeset_version.rb index cfef99d..faf048b 100644 --- a/tool/changeset_version.rb +++ b/tool/changeset_version.rb @@ -22,11 +22,19 @@ def main end current_version = read_current_version - bumps = changesets.map(&:bump) - bump = max_bump(bumps) - new_version = next_version(current_version, bump) + override = ARGV[0] - puts "Applying version bump: #{current_version} -> #{new_version} (#{bump})" + if override + parse_version(override) # validate format + new_version = override + bump = 'manual' + puts "Manual version override: #{current_version} -> #{new_version}" + else + bumps = changesets.map(&:bump) + bump = max_bump(bumps) + new_version = next_version(current_version, bump) + puts "Applying version bump: #{current_version} -> #{new_version} (#{bump})" + end write_version_rb(new_version) puts " Updated #{VERSION_FILE}"