rake release fail (using gem bundler)
I used bundler, that create three rake tasks with
bundle gem command:
- Ruby Gem install creates empty folder in gem directory
- What is the cleanest and easiest way to share custom RSpec matchers across multiple ruby/rails projects?
- Gem installed from github sources not shown in `gem list`
- Is there a ruby gem that does diff between HTML documents?
- RubyMine doesn't recognize gem from git repository
- installing gem from a github fork
$ rake -T rake build # Build blomming_api-0.3.7.gem into the pkg directory rake install # Build and install blomming_api-0.3.7.gem into system gems rake release # Create tag v0.3.7 and build and push blomming_api-0.3.7.gem to Rubygems
All fine if install locally the gem with
$ rake install blomming_api 0.3.7 built to pkg/blomming_api-0.3.7.gem. blomming_api (0.3.7) installed.
The problem arise when I try to release:
$ rake release blomming_api 0.3.7 built to pkg/blomming_api-0.3.7.gem. Tagged v0.3.7. Untagging v0.3.7 due to error. rake aborted! Couldn't git push. `git push 2>&1' failed with the following output: fatal: No configured push destination. Either specify the URL from the command-line or configure a remote repository using git remote add <name> <url> and then push using the remote name git push <name> /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:104:in `perform_git_push' /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:96:in `git_push' /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:77:in `block in release_gem' /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:129:in `tag_version' /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:77:in `release_gem' /home/solyaris/.rvm/gems/ruby-2.0.0-p247/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:50:in `block in install' Tasks: TOP => release (See full trace by running task with --trace)
Nevertheless I’m able to publish the gem with successfull
gem push command:
$ gem push pkg/blomming_api-0.3.7.gem Pushing gem to https://rubygems.org... Successfully registered gem: blomming_api (0.3.7)
I presume that problem is on the git push remote configuration…
Any idea to help me configure git to let rake release run ?
BTW, I already configured my rubygems credentials on /home/solyaris/.gem
and git push on github run ok.
I know… my git reluctance is big 😉
2 Solutions collect form web for “rake release fail (using gem bundler)”
rake release attempts to push the code to the remote repository (implicitly assuming you’re using git) and create a tag.
In your case, it looks like there is no git remote configured for your repository and the task fails.
I personally don’t like such task. I tend to use
$ rake build
to build the package, then
$ gem push pkg/...
to publish the gem to RubyGems.
If you want to use
rake release I suggest you to override the default implementation to skip/replace/customize the Git commit.
rake release will attempt to tag your gem in git and push it to your remote. Sounds like you aren’t configured to do
git push without specifying the remote.
Try this to fix:
git push -u origin master
If you can do
git push after that without an error,
rake release should work as well, although you might need to bump the version number of your gem if you’ve already pushed it to ruby gems, as I think ruby gems complains if you try to release a gem of the same version.