11

तो, एक दोस्त और मैं लगातार एकीकरण और बल्ले/पावरहेल स्क्रिप्ट्स बनाम सीआई सर्वर जैसे क्रूज़ कंट्रोल.Net या हडसन पर चर्चा कर रहा हूं।निरंतर एकीकरण: पावरशेल बनाम सीआई सर्वर (सीसीएनईटी या हडसन)

निम्नलिखित पावरहेल छद्म स्क्रिप्ट एसवीएन से अपडेट करने के लिए काम करता है, एमएसबिल्ड का उपयोग करके, तैनाती/प्रतिलिपि बनाने, ऐप में बिल्ड/संशोधन संख्या अपडेट करने और विफल बिल्डों पर ईमेल अपडेट करने के लिए काम करता है। अगला चरण सफल होने पर एमएसटीएस्ट और ईमेल परिणामों में कॉल जोड़ना होगा।

  1. SVN अद्यतन
  2. MSBuild> build_deploy_development_out_msbuild
  3. ([एक्सएमएल] (SVN जानकारी --xml))। Info.entry.commit.revision + [चार] 13 [चार] 10 + (गूंज % दिनांक%% समय%)> build_revision_number.html
  4. $ linenumber = चयन-स्ट्रिंग build_deploy_development_out_msbuild -pattern "बिल्ड विफल" | चयन-ऑब्जेक्ट Linenumber
  5. $ smtp = नया ऑब्जेक्ट सिस्टम.Net.Mail.SMTPClient -ArgumentList localhost | अगर ($ linenumber> 0) $ smtp.Send ("से: ईमेल", "टू: ईमेल", "बिल्ड विफल", "बिल्ड विफल रहा ... किसी को मरना चाहिए!")

इसमें मुझे सीआई सर्वर के मूल्य के सवाल पर ले जाएं, जब आप प्रोजेक्ट के विशिष्ट टूल्स (बिल्ड टूल, सोर्स कंट्रोल, यूनिट टेस्टिंग) (यानी एमएसबिल्ड, नेंट, एसवीएन) का उपयोग करके, एक ही लक्ष्य को पूरा करने के लिए अपनी खुद की खोल स्क्रिप्ट लिख सकते हैं। , गिट, नुनिट, mstest, आदि)

मुझे अभी तक रखरखाव लागत का अनुभव नहीं हुआ है। मैं क्रूज़ कंट्रोल.Net या हडसन बनाम अपनी खुद की खोल स्क्रिप्ट रोल पर अन्य राय प्राप्त करना चाहता था। कृपया ध्यान दें, मुझे सीआई सर्वर के साथ अनुभव नहीं है, इस प्रकार सवाल है, इसलिए कृपया इसे सीआई सर्वर की आलोचना के रूप में न लें; मैं बस सबसे अच्छा जवाब नहीं जानता, और सोचा कि मैं समुदाय से पूछूंगा।

शुभकामनाएं! पीट गॉर्डन

+0

यह समुदाय विकी होना चाहिए, क्योंकि कोई स्पष्ट उत्तर नहीं है –

+0

सीसी.NET या हडसन क्यों सूचीबद्ध है? यह एक पावरहेल वीएस सीआई सवाल की तरह लगता है। अर्थशास्त्र क्यों? – TheOptimusPrimus

उत्तर

3

मैं हडसन स्थापित किया है कुछ हफ़्ते पहले वर्तमान CruiseControl सर्वर को बदलने के लिए। हडसन में जो सबसे बड़ा लाभ मैं देखता हूं वह यह है कि क्रूज़ कंट्रोल (या बैच फ़ाइल) के साथ एक पैरामीट्रिज्ड बिल्ड लॉन्च करते समय कोई भी इसका उपयोग कर सकता है, फिर भी बहुत से लोगों के लिए डरावना है।

आमतौर पर मैं चींटी के साथ अपनी सभी बिल्ड स्क्रिप्ट लिखता हूं (क्योंकि यह पोर्टेबल है), कुछ पैरामीटर डालें और मैं उन्हें हडसन से आमंत्रित करता हूं।

हडसन आपकी स्क्रिप्ट को एक महान दृश्यता देता है (सब कुछ सामने वाले पृष्ठ पर देखा जा सकता है) और वे स्वयं व्याख्यात्मक हैं। आमतौर पर एक बैश स्क्रिप्ट के साथ, आपको एक रीडेम लिखना होगा (जो कोई भी पढ़ता नहीं है) और याद रखें कि वे कहां स्थित हैं।

3

... या यह दोनों है। Ayende (राइनो मोक्स के निर्माता) ने हाल ही में किया है। उन्होंने पावरशेल का उपयोग कर एक सीआई सर्वर लिखा। शायद this आपकी चर्चा के लिए नई अंतर्दृष्टि प्रदान करता है।

9

सीआई सर्वर आप कई फायदे दे:

  • वेब का उपयोग, आम तौर पर मौजूदा प्रमाणीकरण प्रणाली (हडसन की ActiveDirectory/LDAP समर्थन देखें)
  • इकाई परीक्षण के लिए मौजूदा समर्थन के टन के साथ एकीकृत करने की क्षमता के साथ, संग्रह ज़िप सृजन, आदि
  • वितरित सीआई कार्यों के लिए हडसन (और अन्य) गुलाम निर्माण नोड्स का समर्थन करता है।
  • इसे स्वयं बनाए रखने की कोई आवश्यकता नहीं है।

इनमें से कुछ चीजें आप की जरूरत है अब नहीं हो, लेकिन आप यकीन है कि वे चीजों को आप भविष्य में आवश्यकता हो सकती है नहीं कर रहे हैं हो सकता है?

+1

इन प्रकार की सुविधाओं के लोगों के उपयोग पर एक सर्वेक्षण देखना पसंद करेंगे। मैं 100% आत्मविश्वास नहीं हूं मैं उन्हें सब समझता हूं। यह मुझे शक्तियों में ज़िप संग्रह के बारे में उत्सुक बना देता है, और मुझे यह मिला ... http://tfl09.blogspot.com/2008/12/zip-files-with-powershell.html धन्यवाद! – petegordon

+1

मैंने इनमें से कुछ सुविधाओं का उपयोग किया है और मैंने कुछ परियोजना विशिष्ट आवश्यकताओं को हल करने के लिए कुछ एडहोक हडसन प्लगइन बनाए हैं। हडसन के साथ सबसे महत्वपूर्ण पहलू यह है कि यह एक बढ़ती हुई परियोजना है जिसमें प्लगइन की बढ़ती संख्या है। –

+0

आप पावरहेल के साथ कॉन-वर्तमान बिल्ड कैसे करेंगे? आप संस्करण, तैनाती और कोड कवरेज रिपोर्टिंग का प्रबंधन कैसे करेंगे? पहिया का फिर से आविष्कार क्यों करें? – TheOptimusPrimus

1

एक साल के लिए मैंने कस्टम सीआई सामग्री करने के लिए कस्टम लिखित पायथन स्क्रिप्ट को बनाए रखने की कोशिश की है: ई-मेल के माध्यम से काम की अधिसूचनाएं प्राप्त करना, सामान की जांच करना और निर्माण करना, वापस दोष और बधाई भेजना, फिर जब यह आया मेरी टीम में हर किसी के द्वारा इसका उपयोग करने के लिए इसे प्रकाशित करने के बाद, यह निगरानी, ​​वेब-एक्सेस इत्यादि के बिना राहादर को अनुपयोगी बना दिया गया।

फिर मैंने बिल्डबॉट में डाला और इसे वास्तव में सुंदर पाया। मैंने मूल रूप से एक ही प्रक्रिया को दो दिनों में स्थापित किया है। बिल्ड स्क्रिप्ट एक असली पायथन ऑब्जेक्ट है, जो मास्टर पर कस्टमाइज़ करने योग्य है, जहां से इसे गुलामों में स्थानांतरित किया जाता है और वहां निष्पादित किया जाता है। घुमावदार ढांचे पर निर्मित, यह बहुत सारे सामान के बाहर है;)

वेब यूआई पर्याप्त है, हालांकि पर्याप्त है।

खैर, यह भी अप्रकाशित है, हालांकि मैं इसे बंद करने के लिए इस समय%)

1

नीचे एक PowerShell स्क्रिप्ट

  • अत्यधिक विन्यास प्लगइन्स उपलब्ध हैं अधिक सीआई सर्वर पर अपने विचार कर रहे हैं हूँ सभी प्रकार के संस्करण नियंत्रण, अधिसूचनाओं और परीक्षण के लिए।
  • लॉग ये आश्चर्यजनक रूप से बनाए रखा जाता है। विफलता और सफल निर्माण लॉग आपकी उंगली की नोक पर हैं।
  • निर्धारण आप समय-निर्धारण के सभी प्रकार सेट कर सकते हैं अन्य सफल निर्माण
  • के आधार पर triggerring सहित सुरक्षा आप निष्पादित करने के लिए सक्षम होने के लिए अलग-अलग समूहों सेट कर सकते हैं, केवल देखने के लिए या कुछ परियोजनाओं को देखने के लिए सेट
  • दृश्यता आप विभिन्न ऑडियंस के लिए एक वेब डैशबोर्ड या सीसीटीआरई का उपयोग कर सकते हैं।
  • स्केलेबिलिटी। आवश्यकता होने पर स्केल करना आसान है।

नीचे की रेखा यदि आपको विभिन्न पर्यावरण और टीम परियोजनाओं के लिए बहुत सारे निर्माण बनाए रखना है तो सीआई सर्वर जाने का रास्ता है। इसके अलावा एक छोटी पावरशेल स्क्रिप्ट छोटी परियोजनाओं के लिए पर्याप्त है। एक बार प्रोजेक्ट बढ़ने के बाद आप मौजूदा पावरशेल स्क्रिप्ट को सीआई सर्वर पर जोड़ सकते हैं।

संबंधित मुद्दे