diff options
author | Dávid Halász <skateman@skateman.eu> | 2015-06-08 20:27:48 +0200 |
---|---|---|
committer | Dávid Halász <skateman@skateman.eu> | 2015-06-08 21:00:17 +0200 |
commit | 1b2cf4b9e857bb32d877020e2a69bff73ba4e28f (patch) | |
tree | 5c5983c3e42b064795161e33b84d74ad77d4168b | |
parent | c04b06f2bb86451da9ee6a8b82f932c50bd54ecf (diff) | |
download | bundler-1b2cf4b9e857bb32d877020e2a69bff73ba4e28f.tar.gz |
Added support for optional remote argument in the rake release task
Useful when working with multiple git remotes (origin/upstream/downstream).
`rake release[remote]` will push tags into the specified remote instead of the default one.
-rw-r--r-- | lib/bundler/gem_helper.rb | 12 | ||||
-rw-r--r-- | spec/runtime/gem_tasks_spec.rb | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb index 9aac3e0d75..4189a602f3 100644 --- a/lib/bundler/gem_helper.rb +++ b/lib/bundler/gem_helper.rb @@ -51,7 +51,7 @@ module Bundler desc "Create tag #{version_tag} and build and push #{name}-#{version}.gem to Rubygems\n" \ "To prevent publishing in Rubygems use `gem_push=no rake release`" - task 'release' => ['build', 'release:guard_clean', + task 'release', [:remote] => ['build', 'release:guard_clean', 'release:source_control_push', 'release:rubygem_push'] do end @@ -59,8 +59,8 @@ module Bundler guard_clean end - task 'release:source_control_push' do - tag_version { git_push } unless already_tagged? + task 'release:source_control_push', [:remote] do |t, args| + tag_version { git_push(args[:remote]) } unless already_tagged? end task 'release:rubygem_push' do @@ -102,9 +102,9 @@ module Bundler Dir[File.join(base, "#{name}-*.gem")].sort_by{|f| File.mtime(f)}.last end - def git_push - perform_git_push - perform_git_push ' --tags' + def git_push(remote = '') + perform_git_push remote + perform_git_push "#{remote} --tags" Bundler.ui.confirm "Pushed git commits and tags." end diff --git a/spec/runtime/gem_tasks_spec.rb b/spec/runtime/gem_tasks_spec.rb index 5124b05a3c..6e64e187ad 100644 --- a/spec/runtime/gem_tasks_spec.rb +++ b/spec/runtime/gem_tasks_spec.rb @@ -26,7 +26,7 @@ describe "require 'bundler/gem_tasks'" do expected_tasks = [ "rake build", "rake install", - "rake release", + "rake release[remote]", ] tasks = out.lines.to_a.map { |s| s.split('#').first.strip } expect(tasks & expected_tasks).to eq(expected_tasks) |