उपचार Heroku किसी भी अन्य दूरस्थ Git रेपो की तरह - आप git ls-remote
उपयोग कर सकते हैं:
git ls-remote heroku
अद्यतन (heroku
यहां दूरदराज के नाम किया जा रहा है):
के बाद से ओपी वास्तव में रूबी एनवी में एसएचए हासिल करने की तलाश में है, एक संभावित तरीका custom buildpack का उपयोग करना होगा।
प्रारंभ करने के लिए, Heroku's Ruby Buildpack पर जाएं और इसे फोर्क करें ताकि आप अपनी खुद की विविधताओं को बना सकें। अब अपने कांटा को क्लोन करें और lib/language_pack/ruby.rb
पर एक नज़र डालें। एक नई विधि जोड़ें, जैसे कुछ:
def get_SHA
#get SHA
#save SHA to ENV, ala: ENV['SHA'] = retrieved_sha
end
एसएचए प्राप्त करने के बारे में आप कैसे जाते हैं आप पर निर्भर है। आप एक Git आदेश पर अमल कर सकता है और का उपयोग क्या वापस आ रहा है:
git log -1 --format="%H"
या आप @ avaynshtok की सलाह का उपयोग करें और releases
विधि का उपयोग करने Heroku मणि इस्तेमाल कर सकते हैं।
फिर, एक बार आपके पास SHA होने के बाद, इसे एक ENV var के रूप में सेट करें।
इसके बाद, ruby.rb
में compile
विधि मिल जाए, और यह के अंत तक get_sha
पद्धति जोड़ें:
def compile
Dir.chdir(build_path)
install_ruby
setup_language_pack_environment
allow_git do
install_language_pack_gems
build_bundler
create_database_yml
install_binaries
run_assets_precompile_rake_task
get_sha #your additional method
end
end
अपने परिवर्तनों को GitHub अप करने के लिए पुश, और अब कमांड लाइन पर जाएं। इसलिए
heroku config:add [email protected]:<your GitHub username>/heroku-buildpack-ruby.git
नोट आप की आवश्यकता होगी कि सुनिश्चित करें कि आप के साथ, ठीक है ... अपने GitHub उपयोगकर्ता नाम <your GitHub username>
की जगह है बनाने के लिए, आप: आप अपने Heroku ऐप्लिकेशन में एक नई config वर जोड़ने की आवश्यकता होगी आपके फोर्क रेपो पर इशारा कर रहे हैं।
heroku labs:enable user_env_compile
अब आप पूरी तरह से तैयार किया जाना चाहिए:
अंत में, एक अंतिम आदेश है कि एक Heroku labs feature कि उपयोगकर्ता के लिए स्लग संकलक पहुँच वार्स की अनुमति देता है के लिए सक्षम बनाता निष्पादित। तो अब वास्तव में क्या होता है? खैर, जब आप हरोकू को दबाते हैं, तो हेरोकू में परिवर्तन प्राप्त होंगे, और फिर देखें कि आपके पास कस्टम बिल्डपैक यूआरएल सेट है। तो यह आपके कस्टम बिल्डपैक को गिटहब से लाएगा, और उसके बाद स्लग बनाने के लिए इसका उपयोग करेगा। इसका अर्थ यह है कि एक बार जब यह सभी डिफ़ॉल्ट संकलन आदेशों के माध्यम से चलता है, तो यह आपके get_sha
विधि के साथ समाप्त हो जाएगा, जो उपयुक्त SHA में ENV var SHA
सेट करना चाहिए। अब आप रूबी के भीतर से उस एनएनवी var तक पहुंच सकते हैं, जो आप करेंगे उसके साथ करने के लिए।
मैं पूछने के लिए क्यूं कर? आप कहते हैं, 'हमारे पास इस शाखा का उपयोग करने के लिए कुछ लोग हैं जो बग की तलाश में हैं' मैं ट्रोल करने की कोशिश नहीं कर रहा हूं लेकिन आश्चर्य है कि आप देव में बग क्यों नहीं लगाएंगे, इसे दूसरों को देखने के लिए अपलोड करें और फिर एक बार मर्ज करें " अनुमोदित "या उनके लिए जो भी कारण है उसके लिए उसके अनुयायी में एक विशिष्ट शाखा को देखने के लिए और अपनी स्वयं की देव मशीनों पर नहीं। – pjammer
कोई समस्या नहीं, मुझे नहीं लगता कि यह ट्रोलिंग है - शायद मेरी विधि इष्टतम सोच से समर्थित नहीं है, लेकिन अगर वे केवल अपनी स्थानीय मशीन पर ऐप का परीक्षण करते हैं, तो मैं बस सो नहीं सकता Heroku पर बिल्कुल वही काम करते हैं। –
लेकिन यह एक स्टेजिंग वातावरण सही है? कोड में आप कितने लोग चकित कर रहे हैं? मेरा मतलब है, अगर कोई बग है, तो मास्टर से एक लड़का शाखाएं, इसे ठीक करती हैं, स्टेजिंग अपडेट करती हैं। आप इसे स्वीकार करते हैं। फिर आप मास्टर में विलय करते हैं और उत्पादन के लिए दबाव डालते हैं। आपको कुछ नींद आती है। – pjammer