115

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

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

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

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

उत्तर

111

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

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

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

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

+0

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

+2

@ बालेक्सेंड्रे - मुझे टीम शहर डॉक्स बहुत अच्छे होने के लिए मिला है। और @ बोज के answere यहाँ एक अच्छी स्क्रीन कास्ट के लिए एक लिंक प्रदान किया http://blog.wekeroad.com/kona/kona-2/ –

+0

मैं हमेशा सीसीनेट की छवि के कारण सीआई से डरता था, पिछले हफ्ते मैंने कोशिश की टीमसिटी 6.5 और यह एक पूर्ण खुशी रही है। एक एक्सएमएल/कॉन्फ़िगरेशन फ़ाइल को स्पर्श नहीं किया। –

2

मैंने हाल ही में सीसीनेट स्थापित किया है। यह एक अच्छा आवेदन है लेकिन थोड़ा धैर्य की आवश्यकता है। आप नोटपैड बहुत में config फ़ाइलों का संपादन किया जाएगा :)

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

मैं इस्तेमाल किया TeamCity havent लेकिन मैं इसके बारे में काफी कुछ सिफारिशों में सुना है और यह बहुत लग रहा है।

1

एक तीसरा विकल्प आप चाहते हो सकता है पर विचार करने के: ThoughtWorks 'क्रूज। यह क्रूज़ कंट्रोल पर बनाया गया है, लेकिन बहुत अधिक सुविधाएं, आसान सेटअप इत्यादि प्रदान करता है। मुफ्त (या ओपन सोर्स) नहीं।

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

+1

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

+0

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

3

आप पर वैकल्पिक उपकरण फेंक :-)

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

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

+1

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

12

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

2

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

इसके अलावा, क्रूज़ कंट्रोल दस्तावेज़, इसके wiki page में भी कुछ उपयोगी जानकारी है।

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

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

12

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

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

मुझे लगता है कि हम उत्पाद की हर उन्नत सुविधा का उपयोग कर रहे हैं और अब तक कोई भी बग नहीं मिला है। Ndepend एकीकरण, नेस्टेड NAnt स्क्रिप्ट्स, Perforce संस्करण लेबलिंग, आप इसे नाम, हम इसे कर रहे हैं।

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

+0

पर्सफोर्स एक असुविधाजनक उपकरण है? पर्सफोर्स किसी भी आकार की टीमों के लिए शानदार है। मैं अपने घर के विकास के लिए इसे अपने आप उपयोग करता हूं :) – sonstabo

+0

@sonstabo, मैं इसके साथ सहमत हूं, ज्यादातर छोटी कंपनियां एसवीएन या जीआईटी के साथ जाती हैं और पेर्सफोर्स ज्यादातर बड़ी कंपनियों में उपयोग की जाती है। मैंने पेर्सफोर्स का इस्तेमाल किया है और इसे पसंद किया है, लेकिन जब मैंने इसका इस्तेमाल किया तो मैं 1,000 डेवलपर कंपनी में था। –

3

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

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

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

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

और समस्याओं मैं था की अधिक जानकारी के CC.Net के लिए कुछ पैच के लिए यहां http://www.lenholgate.com/archives/cat_ccnet.html

+0

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

+0

सीसी.Net के मेरे भारी हैक किए गए संस्करण में भी मुझे समस्याएं हैं क्योंकि CC.Net शेड्यूलिंग के लिए प्रति परियोजना दृष्टिकोण के थ्रेड का उपयोग करता है और, ठीक है, यह बस है एक बकवास डिजाइन आईएमएचओ। हडसन के लिए –

15

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

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

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

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

+6

+1। यह भी देखें: हडसन का उपयोग .NET बिल्ड टूल के रूप में करना: http://stackoverflow.com/questions/616149/how-and-why-do-i-set-up-a-c-build-machine/616230#616230; क्रूज़ कंट्रोल बनाम हडसन: http://stackoverflow.com/questions/604385/what-is-the-difference-between-hudson-and-cruisecontrol-for-java-projects – Jonik

33

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

लेकिन

Kona: Continuous Integration and Better Unit Testing स्क्रीनकास्ट (टीमसिटी के बारे में पहला 1/3) के बाद मैं टीमसिटी भी देखूंगा। मुझे एकीकृत यूनिट टेस्ट डैशबोर्ड और कॉन्फ़िगरेशन इंटरफ़ेस पसंद है।

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

पीएस .: मुझे उम्मीद है कि नेट पर एक मूल्यवान सीसी.NET वीडियो भी है।

+2

+10 अगर मैं कर सकता था। शानदार लिंक –

+0

ग्रेट लिंक !!!!! – dcinadr

+3

लिंक मर चुका है। स्क्रीन-कास्ट यहां है http://media.wekeroad.com/Kona2.wmv – trailmax

0

मैं साढ़े सालों से टीमसिटी का उपयोग कर रहा हूं, और एक अच्छा अनुभव है। मैंने कई नेट और जावा प्रोजेक्ट्स और एमएसबिल्ड, मेवेन इत्यादि जैसे टूल्स टूल्स को एकीकृत किया है। मैंने टीमसिटी को स्थापित करने और काम करने के लिए बहुत आसान पाया है। मैंने कुछ एसक्यूएल परियोजनाओं के लिए सीआई चलाने के लिए कामयाब रहा है, साथ ही यह कुछ दुःस्वप्न था जो अन्य सीआई उपकरणों के साथ और भी खराब हो सकता था।
हाल ही में टीमसिटी 8.0.6 में अपग्रेड किया गया जो दर्द रहित था। इसके अलावा टीमसिटी REST API प्रदान करता है जो कुछ परिदृश्यों के लिए बहुत उपयोगी है।यदि आप स्वचालित बनाने के लिए पावरहेल का उपयोग कर रहे हैं तो कई साइक/टीमसिटी एकीकरण स्क्रिप्ट GitHub