2013-08-14 4 views
6

का उपयोग करने के लिए रेक रिलीज कार्य को ओवरराइड करें। मैं Gemfury पर एक निजी मणि होस्ट कर रहा हूं और रूबीगम्स के बजाय अपने जेमफ्यूरी निजी यूआरएल को धक्का देने के लिए rake release कार्य को ओवरराइड करना चाहता हूं।जेमफ्यूरी

हालांकि मैं गिट टैग निर्माण को रखना चाहता हूं।

कोई भी विचार जहां मुझे शुरू करना चाहिए?

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

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

task default: :spec 
task test: :spec 

उत्तर

5

वास्तव में इस सवाल का जवाब मिल गया:

Rakefile

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 

अब जब कर रही:

यहाँ मेरी Rakefile कैसा दिखाई देता है है

rake release 

यह गिट टैग बनाते हैं और मेरे जेमफरी निजी मणि भंडार को धक्का देते हैं।

आप अपने गुप्त कुंजी के साथ ~/.gem/gemfury में एक फ़ाइल बनाना चाहेंगे:

--- 
:gemfury_api_key: 1H... 
+0

वहाँ कमांड लाइन पर gemfury_api_key निर्दिष्ट करने के लिए कोई तरीका है? मैं जेनकिंस को अपने मणि का निर्माण और धक्का देना चाहता हूं, और कहीं भी स्रोत कोड में रहस्य रखने की कल्पना नहीं करता हूं। –

+0

यह है [इसे कैसे कार्यान्वित किया जाता है] (https://github.com/bundler/bundler/blob/master/lib/bundler/gem_helper.rb#L82)। मुझे नहीं लगता कि आप जो हासिल करना चाहते हैं वह संभव है। –

+1

धन्यवाद - मुझे केवल बाद में एहसास हुआ कि '.gem' निर्देशिका इसे पैक किए गए मणि में नहीं बनाती है, जो मेरी मुख्य चिंता थी। –