覆盖rake release任务以使用Gemfury

时间:2013-08-14 10:53:02

标签: ruby-on-rails rubygems gem rakefile

我正在Gemfury上托管私有宝石,并希望覆盖rake release任务以推送到我的Gemfury私有网址而不是Rubygems。

我想保留Git标签的创建。

我应该开始的任何想法?

这是我的Rakefile的样子:

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

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

task default: :spec
task test:    :spec

1 个答案:

答案 0 :(得分: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

现在做的时候:

rake release

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

您需要使用密钥在~/.gem/gemfury中创建文件:

---
:gemfury_api_key: 1H...