निरंतर एकीकरण के लिए क्रूसीकंट्रोल [.Net] बनाम टीमसिटी?


117

मैं आपसे पूछना चाहता हूं कि व्यावहारिक अनुभव के आधार पर आप किस स्वचालित वातावरण का निर्माण बेहतर मानते हैं। मैं कुछ .Net और कुछ जावा डेवलपमेंट करने की योजना बना रहा हूं, इसलिए मैं ऐसा टूल लेना चाहूंगा जो इन दोनों प्लेटफॉर्म को सपोर्ट करता हो।

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

वर्तमान में, मैं ज्यादातर उपकरण के उपयोग और प्रबंधन में आसानी में दिलचस्पी रखता हूं, इस तथ्य में बहुत कम है कि सीसी खुला स्रोत है, और टीसी कुछ बिंदु पर लाइसेंस के अधीन है जब आपके पास चलाने के लिए बहुत अधिक परियोजनाएं हैं (क्योंकि, मैं परियोजनाओं की एक छोटी राशि के लिए इसकी आवश्यकता है)।

इसके अलावा, अगर कोई अन्य उपकरण है जो उपर्युक्त से मिलता है और आपको विश्वास है कि यह एक सिफारिश के लायक है - इसे चर्चा में शामिल करने के लिए स्वतंत्र महसूस करें।

जवाबों:


111

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

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

क्रूज, थॉटवर्क्स से, यह भी काफी अच्छा लगता है, लेकिन मुझे स्विच करने के लिए एक सम्मोहक कारण नहीं दिखता है। अगर मैं एक नई परियोजना शुरू कर रहा था, तो मैं इसे एक कोशिश दे सकता हूं, लेकिन टीमसीटी ने जटिल चीजों को बहुत ही दर्द रहित बनाते हुए सरल चीजों को सरल बनाने का शानदार काम किया है।

संपादित करें: हमने कुछ हफ़्ते पहले TeamCity 5.0 में अपग्रेड किया था और यह एक और दर्द रहित अपग्रेड था। यह हमें बेहतर कोड कवरेज क्षमताओं और GIT समर्थन का लाभ उठाने देता है। हम अब व्यक्तिगत निर्माण और पूर्व-परीक्षण किए गए प्रतिबद्ध सुविधाओं का भी उपयोग कर रहे हैं जो थोड़ी देर के लिए रहे हैं। मैंने सोचा था कि मुझे यह इंगित करने के लिए जवाब अपडेट करना चाहिए कि टीमसिटी में सुधार हो रहा है और अभी भी उपयोग करना आसान है।


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

2
@balexandre - मैंने टीम शहर डॉक्स को काफी अच्छा पाया है। और @ boj के answere एक अच्छा स्क्रीन के लिए एक लिंक यहाँ डाली प्रदान की blog.wekeroad.com/kona/kona-2
माइक दो

CCNet की छवि के कारण मैं हमेशा CI से डरता था, मेरे पास पिछले सप्ताह मैंने टीमसिटी 6.5 की कोशिश की थी और यह एक परम आनंद रहा है। एकल xml / कॉन्फ़िगरेशन फ़ाइल को स्पर्श न करें।
21.31 बजे kay.one

1
यदि आप वर्तमान में CC.Net का उपयोग कर रहे हैं और आप टीम सिटी में जाना चाहते हैं, तो क्या यह दर्दनाक है? टीसी MSI फ़ाइलों का उत्पादन कैसे करता है?
वेस

@, मुझे नहीं पता कि यह अभी भी आपके लिए प्रासंगिक है, लेकिन हमारे पास CC.Net में 20+ प्रोजेक्ट चल रहे हैं, लेकिन हाल ही में मैंने कुछ Android प्रोजेक्ट्स के लिए TeamCity लागू किया है। अब तक का सबसे बड़ा दर्द चींटी सीख रही थी, लेकिन अगर मैंने CC.Net में प्रोजेक्ट्स डाल दिए होते तो मुझे कुछ करना पड़ता। अगर मैं प्रबंधन को अतिरिक्त बिल्ड कॉन्फ़िगरेशन के लिए भुगतान करने के लिए प्रबंधन को मना सकता हूं, तो हमें खुशी से अपनी सभी परियोजनाओं को स्थानांतरित करना होगा, जो कि मुख्य रूप से कॉन्फ़िगरेशन के कारण, जो कि टीमकिटी में एक हवा है और CC में XML quagireire है। नेट।
जोंक

33

मैं CC.NET का बहुत बड़ा प्रशंसक था। वर्तमान में हमारे पास क्रूज़कंट्रोल में 5 परियोजनाएँ हैं, और यह बेहतरीन काम करता है। हाथ से कॉन्फिग फाइल लिखना पेनफुल हो सकता है लेकिन यह ठीक है।

लेकिन

के बाद Kona: सतत एकीकरण और बेहतर इकाई परीक्षण स्क्रीनकास्ट (पहले 1/3 टीम के बारे में) मैं टीम की जाँच भी करूँगा। मुझे एकीकृत इकाई परीक्षण डैशबोर्ड और कॉन्फ़िगरेशन इंटरफ़ेस पसंद है।

मुझे लगता है कि CC.NET या TeamCity चुनने से पहले हर किसी को यह वीडियो देखना चाहिए।

ps: मुझे आशा है कि नेट पर एक मूल्यवान CC.NET वीडियो भी है।


15

मेरा पसंदीदा CI सर्वर हडसन है। डेवलपर्स और गैर-डेवलपर्स, और मुफ्त में रुझान दिखाने के लिए बहुत सारे अच्छे ग्राफ़ सेट करना और बनाए रखना आसान है।

मैं वर्तमान में एक परियोजना पर TeamCity का उपयोग कर रहा हूं और मैं आमतौर पर इससे प्रसन्न हूं, लेकिन यह उत्पन्न होने वाले कई ग्राफ विशेष रूप से उपयोगी नहीं हैं, और हडसन की तुलना में इसे कॉन्फ़िगर करना अधिक जटिल है।

उस ने कहा, TeamCity शक्तिशाली है, कई उपयोगों के लिए मुफ्त है, और इसमें एक हत्यारा सुविधा है: रिमोट रन। आप IDEA या ग्रहण से सीधे अपने चेक को "प्री-कमिट" कर सकते हैं, TeamCity सर्वर पर एक या अधिक बिल्ड कॉन्फ़िगरेशन चला सकते हैं, और केवल तभी बदलाव कर सकते हैं जब बिल्ड सफल हो (जैसे, संकलन और सभी परीक्षण पास)।

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


6
हडसन के लिए +1। यह भी देखें: हडसन को .NET बिल्ड टूल के रूप में उपयोग करना: stackoverflow.com/questions/616149/… ; क्रूसेकंट्रोल बनाम हडसन: stackoverflow.com/questions/604385/…
जोनीक

12

मैंने उन दोनों को अलग-अलग परियोजनाओं पर सफलतापूर्वक उपयोग किया है। एक सेटअप और प्रशासनिक दृष्टिकोण से टीम सिटी का सामना करना आसान है। आप के साथ हैक करने की जरूरत नहीं है .config फ़ाइलों की तरह आप सीसी के साथ करते हैं और सेटअप एक हवा है। चूँकि आपके पास बहुत सारी परियोजनाएँ नहीं हैं, इसलिए जब तक आप टीम सिटी $ $ खर्च करते हैं, तब तक मैं टीम को CC पर टीम सिटी की सिफारिश करूंगा।


12

मैंने CC.net और TeamCity दोनों का उपयोग किया है। मुझे अपने संगठन (5 डेवलपर्स) के लिए टीमसिटी स्थापित करने और स्थापित करने का काम सौंपा गया है। हमारा संगठन कुछ असामान्य प्रथाओं और उपकरणों का उपयोग करता है (कम से कम, हमारे आकार के orgs के लिए), जैसे कि स्रोत नियंत्रण के लिए Perforce और विषम ऑपरेटिंग सिस्टम पर चलने वाले कई बिल्ड एजेंट, जो कुछ प्रारंभिक सेटअप सिरदर्द का कारण बने। हालांकि, ईमेल के माध्यम से समर्थन सब कुछ स्थापित करने में बिल्कुल शीर्ष पर था। मुझे शाब्दिक मिनटों में अपने गूंगे सवालों के जवाब मिले।

इंटरफ़ेस सहज और उत्तरदायी है, साथ ही फीचर-पैक भी है। उत्पाद बहुत महंगा लगता है। कॉन्फ़िगरेशन आसान है, और वेब इंटरफ़ेस बिना किसी एजेंट या सर्वर सेवाओं, या पेज के ताज़ा किए बिना खुद को अपडेट करने के लिए पर्याप्त है।

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

मैं वास्तव में किसी को निरंतर एकीकरण सर्वर, या किसी भी बिल्ड सर्वर की तलाश में टीमकाइटी की सलाह देता हूं।


Perforce एक uncommen टूल है? Perforce किसी भी आकार की टीमों के लिए शानदार है। मैं इसे अपने घर-विकास के लिए खुद इस्तेमाल करता हूं :)
sonstabo

@sonstabo, मैं इससे सहमत हूँ कि, ज्यादातर छोटी कंपनियाँ SVN या GIT के साथ जाती हैं और Perforce का उपयोग ज्यादातर बड़ी कंपनियों में किया जाता है। मैंने Perforce का उपयोग किया है और इसे पसंद किया है, लेकिन जब मैंने इसका उपयोग किया, तो मैं 1,000 डेवलपर कंपनी में था।
सैमुअल नेफ

3

आप पर वैकल्पिक उपकरण फेंकना चाहते हैं बिना :-)

हडसन एक महान खुला स्रोत विकल्प है, मैंने CC और CC.net का उपयोग किया है, और मुझे लगता है कि मुझे लगता है कि वे शानदार उपकरण हैं। मैं हडसन पर स्विच कर रहा हूं क्योंकि यह सेटअप और रखरखाव के लिए बहुत आसान है।

https://hudson.dev.java.net/


1
+1। जैसा कि कोई भी .net CI के लिए हडसन के बारे में नहीं सोचता है। मैंने क्रूज कंट्रोल, टीम सिटी और बांस का उपयोग किया है, और पाया कि हडसन ज्यादातर मामलों में नौकरी के लिए सबसे अच्छा साधन है, जहां बजट एक बड़ी चिंता है।
डान रिग्बी

3

सुनिश्चित करें कि आप उस प्रणाली को तय करते हैं जो तराजू पर उन परियोजनाओं की संख्या को तय करती है जिन्हें आपको इसे संभालने की आवश्यकता होगी ...

मैं CruiseControl.Net का उपयोग करता हूं, लेकिन मैं बहुत सारी परियोजनाओं के निर्माण के लिए इसकी सिफारिश नहीं करूंगा ... मेरे पास कई (संभवतः थोड़ा अजीब) व्यवस्था है जहां मेरे पास कई सी ++ स्टैटिक लाइब्रेरी हैं जो मैं अनुप्रयोगों में रचना करता हूं। प्रत्येक पुस्तकालय अन्य पुस्तकालयों पर निर्भर करता है और एप्लिकेशन काम के एक सेट में खींचते हैं और निर्माण करते हैं। प्रत्येक परिवाद में एक परीक्षण सूट है। प्रत्येक ऐप में एक परीक्षण सूट है। मैं (विंडोज़) प्लेटफार्मों के 5 संकलक और विविधताओं के लिए निर्माण करता हूं।

पहली बात मैंने यह पाया कि CC.Net के प्रोजेक्ट ट्रिगर्स वास्तव में आपके लिए बहुत जरूरी नहीं हैं और मल्टी-ट्रिगर प्रोजेक्ट ट्रिगर्स के साथ अच्छा नहीं खेलता है। जिस तरह से प्रोजेक्ट ट्रिगर्स काम करता है (वे उस सर्वर से कनेक्ट करने के लिए रीमोटिंग का उपयोग करते हैं जहां प्रोजेक्ट संग्रहीत है (भले ही यह एक प्रोजेक्ट है जो CC.Net के एक ही उदाहरण द्वारा प्रबंधित किया गया है) और फिर उस सर्वर से सभी प्रोजेक्ट्स को खींचें और क्रमिक रूप से सूची खोजें उस परियोजना की तलाश में जो आप में रुचि रखते हैं ...) का मतलब है कि वे अच्छी तरह से पैमाने पर नहीं हैं। एक बार जब आप परियोजनाओं की एक निश्चित संख्या से ऊपर हो जाते हैं, तो आप पाएंगे कि CC.Net आपके निर्माण मशीन के लिए अधिकांश CPU ले रहा है।

बेशक, यह खुला स्रोत है, इसलिए आप इसे ठीक कर सकते हैं ... और, मुझे यकीन है कि यह छोटी संख्या में गैर-निर्भर परियोजनाओं के लिए ठीक है।

समस्याओं के अधिक विवरण के लिए और CC.Net के लिए कुछ पैच यहाँ देखें http://www.lenholgate.com/archives/cat_ccnet.html


ओह ... इस जानकारी के लिए धन्यवाद, बहुमूल्य पोस्ट। खासकर जब कहा जाता है कि टीसी एक साधारण सेटअप है और इसकी सीमा परियोजना की संख्या है, जहां CC & CC.Net खेल में आ सकती है। लेकिन जैसा कि आप कहते हैं, यह समस्याओं में हो जाता है जब परियोजना की गिनती बढ़ जाती है ... धन्यवाद फिर से
ज़प्पन

यहाँ तक कि CC.Net के मेरे भारी हैक किए गए संस्करण में भी मुझे समस्या है क्योंकि CC.Net शेड्यूलिंग के लिए प्रति प्रोजेक्ट थ्रेड का उपयोग करता है और, ठीक है, यह सिर्फ एक बकवास डिज़ाइन IMHO है।
लेन होलगेट

2

मैंने हाल ही में सेटअप cc .net किया है। यह एक महान अनुप्रयोग है लेकिन इसके लिए थोड़ा धैर्य की आवश्यकता होती है। आप नोटपैड अलॉट में कॉन्फिग फाइल को एडिट करेंगे :)

यह कुछ समय के लिए रहा है इसलिए इसका अच्छी तरह से समर्थन किया गया है और आप सामान्य रूप से किसी ऐसे व्यक्ति को खोज सकते हैं जो आपने पहले किया है। वेब इंटरफ़ेस .net के साथ ही जो हमारे लिए एक प्लस था क्योंकि हम एक Microsoft दुकान हैं।

मैंने टीमसिटी का इस्तेमाल किया, लेकिन मैंने इसके बारे में काफी सिफारिशें सुनी हैं और यह बहुत अच्छा लग रहा है।


2

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

इसके अलावा, क्रूज़कंट्रोल डॉक्यूमेंटेशन, इसके विकी पेज की भी कुछ उपयोगी जानकारी है।

टीमसीटी के साथ मेरा सीधा अनुभव नहीं है। हालांकि इसका प्री-टेस्ट कमिट फीचर काफी दिलचस्प लग रहा है।

अन्य सीसी उपकरण है कि आप इसे एक नज़र दे सकता है एटलसियन से बांस है। यह सेटअप करने के लिए बहुत अधिक आसान है और इंटरफ़ेस अच्छा है। हालांकि, यह उतना लचीला नहीं है जितना कि क्रूज़कंट्रोल ऑफर करता है।


1

एक तीसरा विकल्प जिस पर आप विचार करना चाहते हैं: थॉटवर्क्स का क्रूज़। यह CruiseControl पर बनाया गया है, लेकिन बहुत अधिक सुविधाएँ, आसान सेटअप, आदि प्रदान करता है, आदि निःशुल्क (या खुला स्रोत) नहीं।

http://studios.thoughtworks.com/cruise-continuous-integration


1
जब यह सीआई सिस्टम के रूप में स्थापित होने की बात आती है तो मैंने कुछ समय में क्रूज पर ध्यान दिया है। यह बहुत आसान नहीं है उदाहरण के लिए CC.NET। यह प्रवाह और तैनाती में अपनी ताकत
रखता है

यदि आप क्रूज / गो के लिए भुगतान करने जा रहे हैं, तो आप मुफ्त में टीमसिटी प्राप्त कर सकते हैं।
Niall Connaughton

0

मैं पिछले डेढ़ साल से टीमसिटी का इस्तेमाल कर रहा हूं, और एक अच्छा अनुभव रहा। मैंने कई .Net और जावा प्रोजेक्ट्स को एकीकृत किया है और MSBuild, Maven इत्यादि जैसे टूल का उपयोग किया है। मुझे टीमसेट को स्थापित करने और काम करने के लिए बहुत सरल लगा। मैं कुछ sql परियोजनाओं के लिए CI को चलाने में कामयाब रहा हूं जो थोड़ा बुरा सपना था जो अन्य CI उपकरणों के साथ और भी बुरा हो सकता था।
हाल ही में Teamcity 8.0.6 में अपग्रेड किया गया जो दर्द रहित था। साथ ही Teamcity एक REST API प्रदान करता है जो कुछ परिदृश्यों के लिए बहुत उपयोगी है। यदि आप कई प्रकार के Psake / Teamcity एकीकरण स्क्रिप्ट का निर्माण करने के लिए पॉवरशेल का उपयोग कर रहे हैं, तो GitHub पर उपलब्ध एकीकरण स्क्रिप्ट उपलब्ध हैं

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