覆盖rake release任务以使用Gemfury

Pie*_*ois 6 gem rubygems ruby-on-rails rakefile

我在Gemfury上托管一个私有宝石,并希望覆盖rake release任务以推送到我的Gemfury私有URL而不是Rubygems.

我想保留Git标签的创建.

我应该开始的任何想法?

这是我的Rakefile的样子:

require 'bundler/gem_tasks'
require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec)

task default: :spec
task test:    :spec
Run Code Online (Sandbox Code Playgroud)

Pie*_*ois 6

实际上找到了答案:

Rake文件

require 'bundler/gem_tasks'
require 'rubygems/builder'
require 'gemfury'
require 'gemfury/command'

# Override rubygem_push to push to gemfury instead when doing `rake release`
module Bundler
  class GemHelper
    def rubygem_push(path)
      ::Gemfury::Command::App.start(['push', path])
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在做的时候:

rake release
Run Code Online (Sandbox Code Playgroud)

它创建了git标签并推送到我的Gemfury私有宝库.

您将要~/.gem/gemfury使用您的密钥创建一个文件:

---
:gemfury_api_key: 1H...
Run Code Online (Sandbox Code Playgroud)