2011-01-12 15 views
18

के लिए निरंतर एकीकरण के लिए सिफारिशें हमारे पास हमारे स्रोत कोड को Kiln/Mercurial भंडार में संग्रहीत किया गया है; हम अपने उत्पाद का निर्माण करने के लिए एमएसबिल्ड का उपयोग करते हैं और हमारे पास यूनिट टेस्ट हैं जो एमएसटीएस्ट (विजुअल स्टूडियो यूनिट टेस्ट) का उपयोग करते हैं।Mercurial/Kiln + MSBuild + MSTest

निरंतर एकीकरण मशीन (यानी मशीन बनाने) को लागू करने के लिए कौन से समाधान मौजूद हैं।

इस के लिए आवश्यकताएँ हैं:

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

आदर्श रूप से, यह प्रणाली किसी भी सर्वर घटकों के बिना एक बॉक्स (हमारे उत्पाद उस बड़े नहीं है) पर चलती है।

वर्तमान में कौन से समाधान उपलब्ध हैं? उनके पेशेवर/विपक्ष क्या हैं? उपर्युक्त सूची से, क्या किया जा सकता है और क्या नहीं किया जा सकता है?

धन्यवाद

उत्तर

5

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

7

रीसर्प के निर्माता JetBrains से टीमसिटी, वह सब कुछ करेगा। आपको इसे "अपने उत्पाद का निर्माण" करने के लिए विशेष रूप से इसका अर्थ यह है कि आप इसे कॉन्फ़िगर करना होगा, लेकिन आप इसके साथ निर्दिष्ट सब कुछ कॉन्फ़िगर कर सकते हैं।

सॉफ़्टवेयर आपको असफल बिल्ड करने के लिए सतर्क कर सकता है, यहां तक ​​कि निर्माण को तोड़ने वाले कोड में जांच के लिए जिम्मेदार व्यक्ति को केवल सतर्क करने के लिए भी। यह उन आसान वेब पेजों के साथ भी आता है जो आप केवल अपने स्वयं के परिवर्तन देखने के लिए देख सकते हैं, जो कि वे सफलतापूर्वक सफल होते हैं, जो लंबित हैं, और वर्तमान में कौन से निष्पादित किए जा रहे हैं।

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

यह दो स्वाद, पेशेवर संस्करण और उद्यम संस्करण में आता है। पेशेवर संस्करण मुफ़्त है, इसमें 20 बिल्ड कॉन्फ़िगरेशन, 20 उपयोगकर्ता और 3 बिल्ड एजेंट शामिल हो सकते हैं।उद्यम संस्करण असीमित उपयोगकर्ताओं है और विन्यास का निर्माण, और आप भी LDAP आधारित सुरक्षा (लगता डोमेन सत्यापित उपयोगकर्ताओं।) वहाँ भी उद्यम संस्करण की कुछ अन्य बोनस का उपयोग कर सकते हैं। यदि आपको प्रारंभिक 3 से अधिक की आवश्यकता है तो आप अधिक बिल्ड एजेंटों के लिए लाइसेंस भी खरीद सकते हैं।

अब, यदि "कोई सर्वर घटक" का अर्थ है कि आप इसे वेब सर्वर की तरह कार्य नहीं करना चाहते हैं, तो आप होने जा रहे हैं कुछ ऐसा खोजने के लिए कड़ी मेहनत की जो आपके कामों पर प्रतिक्रिया करेगी।

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

+0

मैं TeamCity के लिए CruiseControl छोड़ दिया और मेरी पूरी टीम को बदलने के साथ बहुत खुश है। हम परियोजनाओं के लिए एमएसबिल्ड स्क्रिप्ट का उपयोग करते हैं और परीक्षण के लिए एनयूनीट का उपयोग करते हैं। हम मुख्य रूप से सी ++ और सी # अनुप्रयोग विकसित करते हैं – T33C

0

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

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

यह बहुत अच्छी तरह से भी, मोज़िला और क्रोमियम इसका इस्तेमाल पैमाने, दूसरों के बीच।

2

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

मैं अन्य उपकरणों प्रयास नहीं किया है, लेकिन आप पेशेवरों/यहाँ विपक्ष देख सकते हैं:

संपादित करें: मैं यह उल्लेख करना भूल गया कि हडसन और क्रूज़ कंट्रोल.net ओपन सोर्स प्रो हैं जेक्ट, आप आसानी से अपने इंस्टॉल करने के लिए प्लगइन और पैच लिख सकते हैं।

EDIT²: सीसीनेट के आने वाले 1.6 संस्करण (इस हफ्ते ट्रंक में किए गए परिवर्तन) में Mercurial bugs को ठीक किया जाना प्रतीत होता है।