2010-04-01 5 views
9

के साथ संस्करण नियंत्रण के तहत अभी भी कैपिस्ट्रानो के साथ तैनात होने से फ़ाइलों को छोड़कर मैं qUnit के साथ अपने रेल ऐप्स में जावास्क्रिप्ट का परीक्षण शुरू करना चाहता हूं और मैं सोच रहा हूं कि टेस्ट जावास्क्रिप्ट और टेस्ट रनर एचटीएमएल पेज को वर्जन कंट्रोल के तहत कैसे रखा जाए (मैं निश्चित रूप से गिट का उपयोग कर रहा हूं) लेकिन जब मैं कैपिस्ट्रानो के साथ ऐप को तैनात करता हूं तो उन्हें उत्पादन सर्वर से बाहर रखता हूं। मेरा पहला विचार कैपिस्ट्रानो को परीक्षण कोड सहित सामान्य रूप से सभी कोड भेजने देना है, और तैनाती प्रक्रिया के अंत में उन्हें हटाने के लिए एक कार्य लिखना है। यह एक हैक की तरह लगता है, यद्यपि। तैनात करते समय रिपोजिटरी के कुछ हिस्सों को अनदेखा करने के लिए कैपिस्ट्रानो को बताने का एक क्लीनर तरीका है?गिट

उत्तर

4

30 अगस्त, 2013 तक, आप बस अपनी पसंद की फाइल/फ़ोल्डर्स .gitattributes फ़ाइल और export-ignore बना सकते हैं।

features/ export-ignore 
spec/  export-ignore 

संदर्भ: https://github.com/capistrano/capistrano/pull/626

0

आप एक परीक्षण शाखा में उन लोगों के परीक्षण (जिस पर आप किसी भी परीक्षा से पहले अपने मुख्य शाखा विलय)

इस तरह हो सकता है, जब आप क्या, किसी भी प्रकार का कोई परीक्षण अपने मुख्य शाखा पर है तैनात करने के लिए Capistrano पूछना कभी शामिल है

7

इसे पूरा करने के कई तरीके हैं, आप अपने परीक्षणों को ऐप की एक परीक्षण शाखा में रख सकते हैं जैसे कि वॉनसी ने सुझाव दिया, लेकिन इसका मतलब यह होगा कि आप अपने सभी परिवर्तनों को अपनी मुख्य शाखा में कर देंगे और फिर इसे अपने परीक्षण में सिंक करेंगे डाली। (इसके गुणों के बिना नहीं, लेकिन कभी-कभी दर्द)

आप अपनी निर्देशिका में .gitignore फ़ाइल का उपयोग कर सकते हैं।

कोई भी फ़ाइल जिसे आप इसमें जोड़ते हैं उसे आपके भंडार में नहीं जोड़ा जाएगा। चूंकि कैपिस्ट्रानो सिर्फ आपके भंडार से खींचता है और पोस्ट करता है, फाइलों को शामिल न करने से उन्हें आपके उत्पादन सर्वर से दूर रखा जाएगा।

इतना ही नहीं बल्कि, यदि आप संस्करण नियंत्रण के लिए अपने मुख्य भंडार में परीक्षण फ़ाइलें चाहते हैं, आप एक नुस्खा अपने config/deploy.rb फाइल करने के लिए जोड़ सकते हैं .. कुछ की तरह:

desc "Remove Test Files" 
    task :remove_test_files , :roles => :web do 
     sudo %{rm -f #{current_path}/public/javascripts/testfile.js} 
     sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js} 
    end 

after 'deploy:remove_test_files' 

और निर्दिष्ट जिन फ़ाइलों को आप निकालना चाहते हैं, यह आपके द्वारा तैनात किए जाने वाले किसी भी फाइल को हटा देगा। :)

उपरोक्त में से कोई भी काम करेगा। उस विधि को चुनें जो आपके लिए काम करता है।

+0

मैं समय पर आपका जवाब नहीं देखा। +1 – VonC

+0

धन्यवाद वॉन। इसकी प्रशंसा करना। –

+0

@ वॉनसी और डस्टिन - यदि आपकी कैप फाइलें आपके तैनाती रेपो में हैं तो आप हैंडलिंग की अनुशंसा कैसे करेंगे लेकिन आप उन्हें अपने उत्पादन सर्वर पर नहीं चाहते हैं? उन्हें रिलीज़/variable_directory_name – csi