सतत बिल्ड सर्वर (cc.net, हडसन, बांस, आदि ...) दूरस्थ निर्माण अनुभव?


9

वर्तमान में हम अपनी निर्माण प्रक्रिया के लिए एक बार cc.net सर्वर का उपयोग करते हैं, जो दोनों .net (msbuild & nant का उपयोग करके) और जावा (मावेन और एंट का उपयोग करके) बनाता है।

CC.net स्रोत नियंत्रण की निगरानी करता है, और एक अलग सर्वर पर चल रहे रिमोट बिल्ड को ट्रिगर करता है। CC.net फिर परिणाम से टकराता है।

जब हम रिमोट बिल्ड चलाते हैं, तो यह आम तौर पर होता है:

  • नकली डेटा का उपयोग करके ननिट या जूनिट या समान चलाता है
  • वैकल्पिक रूप से एक डीबी स्क्रिप्ट चलाता है एक ताजा डेटाबेस उदाहरण बनाने या एक ज्ञात स्थिति से डेटाबेस को पुनर्स्थापित करने के लिए।
  • UI का परीक्षण करने के लिए सेलेनियम या समान चलाता है
  • कोड कवरेज के लिए एम्मा या ncover चलाता है
  • विभिन्न तैनाती वातावरण (परीक्षण, स्वीकृति, उत्पादन) के लिए सिस्टम बनाता है

हमारे पास एक समय में कई बिल्ड चल सकते हैं, कुछ .net और कुछ जावा (अलग-अलग प्रोजेक्ट टीमों से)।

जब हम एक नई परियोजना की स्थापना करते हैं तो रिमोट बनाने में काम आने में काफी समय लगता है और हमें लगता है कि cc.net की तुलना में रिमोट बिल्ड के लिए कुछ अधिक अनुकूल होना चाहिए।

क्या किसी को निरंतर एकीकरण प्रणाली के साथ रिमोट बिल्ड के साथ कोई अनुभव है?
मैं वास्तव में CI सर्वरों की सूची नहीं चाहता, मैं यह सुनना चाहता हूँ कि आपने उन्हें बहु भाषा, मल्टी सर्वर वातावरण में कैसे उपयोग किया है।

जवाबों:


8

हडसन (अपडेट: आज की दुनिया में, मैं जेनकिन्स का उपयोग करता हूं, हडसन का एक कांटा।)

मैंने हाई विजिबिलिटी प्रोजेक्ट्स के लिए जावा और .NET एंटरप्राइज़ वातावरण दोनों में हडसन का उपयोग किया है (आप शायद कुछ साइटों पर गए हैं)। हडसन शुरू से ही ठोस है, लेकिन सबसे अच्छी बात यह है कि बहुत सारे प्लगइन्स हैं जो आपको बस कुछ भी करने की ज़रूरत है। हडसन अत्यधिक विन्यास योग्य है, एक महान समुदाय है, और क्लस्टर वातावरण में स्थापित करना वास्तव में आसान है यदि आपको एक साथ जाने के लिए कई बिल्ड की आवश्यकता होती है। यह मेरे द्वारा उपयोग किए गए सभी लोगों का मेरा पसंदीदा CI सर्वर है (CC.NET, हडसन, और TFS)।

इसके अलावा, आप ChuckNorris प्लगइन का उपयोग कर सकते हैं ताकि वह आपको अंगूठे ऊपर या नीचे दे सके।


1
हडसन एक अच्छा विकल्प है यदि आप कुछ भी विदेशी नहीं कर रहे हैं, लेकिन दिन के अंत में यदि आप ऐसा नहीं कर सकते हैं जो आप एक बैच स्क्रिप्ट में करने की कोशिश कर रहे हैं तो हडसन यह बहुत अच्छी तरह से करने की संभावना नहीं है।
बिल

हडसन ने जेनकिंस और ओरेकल हडसन में भाग लिया है। देखभाल करने के लिए कौन सा साझा करें?

1
@ थोरबजर्न: मैं प्रो-जेनकिंस हूं। वहाँ कई कारणों से , लेकिन मेरे लिए हत्यारा एक है कि जेनकींस और अधिक सक्रिय विकास हो रहा है - मुख्यतः क्योंकि Kohsuke कावागुची, हडसन के पीछे मुख्य पुरुष, जेनकींस शिविर में है। और ऐसा लगता है कि उन्हें लगता है कि जेनकिन्स ने जिस परियोजना को शुरू किया था, उसकी सही निरंतरता है । ओह, और अंत में, जेनकिंस का एक लोगो है जो Microsoft क्लिप आर्ट नहीं है!
टॉम एंडरसन

@ थोरबजोरन - मैं टॉम से सहमत हूं। मैंने हडसन का उपयोग अब लगभग एक वर्ष में नहीं किया है (वर्तमान में टीएफएस का उपयोग करें), लेकिन यह आम सहमति है जो मैंने सुना है कि जेनकिंस जाने का रास्ता है। फिर से, मैंने या तो उपयोग नहीं किया है क्योंकि वे कांटे थे, लेकिन अगर मुझे इसे फिर से उठाना पड़ा, तो मैं संभवतः जेनकिंस मार्ग पर जाऊंगा।
रयान हेस

7

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

हडसन - मुझे नहीं पता था कि इसके बारे में क्या करना है और कहां पढ़ना है। और हालांकि मैं कुछ समझ सकता था, यह एक विकल्प नहीं था - बहुत अधिक काम। मैंने सीसी को देखने का फैसला किया।

क्रूज नियंत्रण - हडसन के समान, फिर भी थोड़ा अलग तरीके से। वहाँ कुछ भी नहीं समझा जा सकता है एक मैनुअल और गूगल से मदद की एक टन के बिना। मैं बस टीसी लेने गया था।

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

मुझे यह भी ध्यान देना चाहिए कि टीसी मुक्त नहीं है। हालांकि उनके पास एक मुफ्त संस्करण है जो कुछ सीमाओं के साथ वाणिज्यिक परियोजनाओं में उपयोग किया जा सकता है (अधिकतम बिल्ड कॉन्फिग 20) - उनके मूल्य निर्धारण पृष्ठ पर एक नज़र डालें।

PS मुझे लगता है जैसे मैं टीसी के लिए काम करता हूं, लेकिन मैं वास्तव में नहीं :)


3

हम CC.NET 1.4 का उपयोग करते हैं।

हम 1.6 में अपग्रेड करने की कोशिश कर रहे हैं ... क्या बुरा सपना है।

इसके शक्तिशाली ... लेकिन केवल अगर आप इसे सही उपयोग करते हैं और समझते हैं कि सब कुछ एक साथ कैसे फिट बैठता है। जो पूरी टीम से बहुत कुछ पूछना है। हमारे पास 'बिल्डमास्टर्स' हैं जिनके पास सर्वर तक पहुंच है और कॉन्फ़िगरेशन बदल सकते हैं। फिर भी, ccnet के संबंध में बहुत सारे Googling हैं और पूरा व्यापार एक बड़ी गड़बड़ी बन गया है।

मैं व्यक्तिगत रूप से टीमसिटी में जाना चाहता हूं।

मैं आपको ccnet के बारे में बताने की सलाह देता हूं।


1

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

मैं बहुत प्रभावित हूँ कि आपके CI का स्तर कितना ऊँचा है। मुझे यह स्वीकार करना होगा कि हमारे पास कम आवश्यकताएं हैं क्योंकि हम अभी तक यूआई परीक्षण नहीं चलाते हैं और डेटाबेस इंस्टेंस या इसी तरह का निर्माण नहीं करते हैं, हम सिर्फ अपनी यूनिट परीक्षणों के लिए मोक्स का उपयोग कर रहे हैं।

अब हमारे अनुभवों को अब तक:

जावा परियोजनाओं के लिए हम बांस का उपयोग कर रहे हैं जो कि जुनेट और एम्मा का उपयोग करके ठीक काम करता है। और एक नई परियोजना स्थापित करने के लिए इतना प्रयास नहीं है।

.NET प्रोजेक्ट्स के लिए हम अभी भी सबसे अच्छा समाधान खोज रहे हैं

  • क्रूज़ कंट्रोल: हमारे रिपॉजिटरी के कनेक्शन की समस्याओं के कारण हम इसे अभी तक नहीं चला सके

  • TFS:

    a) पहले सेटअप को निष्पादित करने में सक्षम होने के लिए कुछ सेटअप चरण आवश्यक हैं।

    ख) कुछ अधिकार हैं जहाँ आपको पहुँच अधिकार के बारे में जानकारी प्राप्त करनी होगी। ऐसी कई भूमिकाएँ हैं जिन्हें आप परिभाषित कर सकते हैं और आपको यह जानना होगा कि आपकी बिल्ड प्रक्रिया में कौन से अधिकार हैं और आपका व्यक्तिगत लॉगिन खाता कौन सा है। लेकिन अगर आपके पास प्रबंधन करने के लिए पर्याप्त समय है, तो आप अपनी ज़रूरत के हर विशेष ग्रैन्युलैरिटी को परिभाषित कर सकते हैं।

    ग) संदर्भित परिवादों के संबंध में कुछ प्रबंध करने के लिए भी कुछ चीजें हैं यदि आप कई परियोजनाओं के लिए लिबास साझा करना चाहते हैं और हर एक परियोजना में उन्हें संभालना नहीं चाहते हैं

    d) NUnit परीक्षण चलाना इतना आसान नहीं है जितना हमने सोचा था। यदि आप Visual Studio द्वारा प्रदान किए गए परीक्षण निष्पादन का उपयोग कर रहे हैं तो यह केवल आसान है, लेकिन यह NUnit नहीं है

    e) हमने अभी तक NCover चलाने की कोशिश नहीं की (पहली चीज़ें पहले :-))

  • हडसन: अगला उपकरण हम कोशिश करेंगे। लगता है कि .NET के लिए वास्तव में अच्छा और आसान प्लगइन है, मैं आपको बताऊंगा कि यह कैसे काम करता है

  • बांस: पहली भविष्यवाणी हमें मिली: "बहुत जावा विशिष्ट"। लेकिन शायद हम .NET प्लगइन की कोशिश करेंगे फिर भी, मैं आपको बता दूंगा

आशा है, हम इस चर्चा को जारी रख सकते हैं और अनुभवों का आदान-प्रदान कर सकते हैं।

एंडी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.