summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDávid Halász <skateman@skateman.eu>2015-06-08 20:27:48 +0200
committerDávid Halász <skateman@skateman.eu>2015-06-08 21:00:17 +0200
commit1b2cf4b9e857bb32d877020e2a69bff73ba4e28f (patch)
tree5c5983c3e42b064795161e33b84d74ad77d4168b
parentc04b06f2bb86451da9ee6a8b82f932c50bd54ecf (diff)
downloadbundler-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.rb12
-rw-r--r--spec/runtime/gem_tasks_spec.rb2
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)