मैं C # बिल्ड मशीन कैसे और क्यों स्थापित करूं? [बन्द है]


144

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

  • मुझे किस तरह के टूल / लाइसेंस की आवश्यकता होगी? अभी, हम बनाने के लिए Visual Studio और Smart असेंबली का उपयोग करते हैं, और स्रोत नियंत्रण के लिए Perforce। क्या मुझे कुछ और चाहिए, या स्वचालित स्क्रिप्ट चलाने के लिए क्रोन जॉब के बराबर है?
  • क्या, वास्तव में, क्या यह मुझे एक टूटे हुए निर्माण के संकेत के अलावा मिलेगा? क्या मुझे इस समाधान (sln फ़ाइल) में परीक्षण परियोजनाएं स्थापित करनी चाहिए जो इन लिपियों द्वारा चलाई जाएंगी, इसलिए मेरे पास विशेष कार्यों का परीक्षण हो सकता है? हमारे पास इस समय दो ऐसे परीक्षण हैं, क्योंकि हमारे पास अच्छा यूनिट परीक्षण करने के लिए समय (या स्पष्ट रूप से, अनुभव) नहीं है।
  • इसके लिए मुझे किस तरह के हार्डवेयर की आवश्यकता होगी?
  • एक बार जब एक निर्माण समाप्त हो गया है और परीक्षण किया गया है, तो क्या यह एक आम बात है कि निर्माण को एक एफ़टीपी साइट पर रखा जाए या आंतरिक पहुंच के लिए कोई अन्य तरीका है? विचार यह है कि इस मशीन बनाता है निर्माण, और हम सभी को यह करने के लिए जाना है, लेकिन डिबग बनाता है अगर हम करने के लिए है बना सकते हैं।
  • हमें इस तरह का निर्माण कितनी बार करना चाहिए?
  • अंतरिक्ष का प्रबंधन कैसे किया जाता है? अगर हम रात का निर्माण करते हैं, तो क्या हमें सभी पुराने बिल्डरों के आसपास रहना चाहिए, या लगभग एक सप्ताह बाद उन्हें खोदना शुरू करना चाहिए?
  • क्या कुछ और है जो मैं यहाँ नहीं देख रहा हूँ?

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

    संपादित करें: मैं अंत में यह काम करने के लिए मिल गया! हडसन पूरी तरह से शानदार है, और एफएक्सकोप दिखा रहा है कि हमारे द्वारा सोचा गया कुछ विशेषताएं वास्तव में अपूर्ण थीं। हमें Old-And-Busted vdproj से New Hotness WiX में इंस्टॉलर प्रकार को भी बदलना पड़ा।

    मूल रूप से, उन लोगों के लिए जो ध्यान दे रहे हैं, यदि आप अपने निर्माण को कमांड लाइन से चला सकते हैं, तो आप इसे हडसन में डाल सकते हैं। MSBuild के माध्यम से कमांड लाइन से बिल्ड रन बनाना अपने आप में एक उपयोगी व्यायाम है, क्योंकि यह आपके टूल को चालू होने के लिए मजबूर करता है।


  • 5
    बहुत बढ़िया, सुनकर खुशी हुई कि आप हडसन से प्यार कर रहे हैं :) क्या अब w / oa CI प्लेटफॉर्म की कल्पना करना मुश्किल नहीं है?
    एलन चावल

    2
    यह बहुत कठिन है। बदलाव तो इसके लायक था।
    एमएमआर

    जवाबों:


    147

    अपडेट: जेनकिन्स , हडसन के सबसे पुराने संस्करण में से एक है। सभी को अब जेनकिंस का उपयोग करना चाहिए। मैं तदनुसार लिंक अपडेट कर रहा हूं।

    हडसन स्वतंत्र और कॉन्फ़िगर करने में बेहद आसान है और आसानी से एक वीएम पर चलेगा।

    आंशिक रूप से मेरी एक पुरानी पोस्ट से:

    हम इसका उपयोग करते हैं

    • विंडोज सेवाओं की तैनाती करें
    • वेब सेवाओं को तैनात करें
    • MSTests चलाएँ और किसी भी जूनियर परीक्षण के रूप में अधिक जानकारी प्रदर्शित करें
    • कम, मेड, उच्च कार्यों का ध्यान रखें
    • ट्रेंडग्राफ चेतावनियाँ और त्रुटियाँ

    यहाँ कुछ .net सामान हैं जो हडसन का समर्थन करते हैं

    इसके अलावा, भगवान आप दृश्य स्रोत सुरक्षित उपयोग कर रहे हैं, यह भी समर्थन करता है । मैं आपको हडसन के उपयोग से .net परियोजनाओं के निर्माण पर Redsolo के लेख पर एक नज़र डालने की सलाह दूंगा

    आपके सवाल

    • प्रश्न : मुझे किस तरह के उपकरण / लाइसेंस की आवश्यकता होगी? अभी, हम बनाने के लिए Visual Studio और Smart असेंबली का उपयोग करते हैं, और स्रोत नियंत्रण के लिए Perforce। क्या मुझे कुछ और चाहिए, या स्वचालित स्क्रिप्ट चलाने के लिए क्रोन जॉब के बराबर है?

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

    • प्रश्न: क्या, वास्तव में, यह मुझे एक टूटे हुए निर्माण के संकेत के अलावा मिलेगा? क्या मुझे इस समाधान (sln फ़ाइल) में परीक्षण परियोजनाएं स्थापित करनी चाहिए जो इन लिपियों द्वारा चलाई जाएंगी, इसलिए मेरे पास विशेष कार्यों का परीक्षण हो सकता है? हमारे पास इस समय दो ऐसे परीक्षण हैं, क्योंकि हमारे पास अच्छा यूनिट परीक्षण करने के लिए समय (या स्पष्ट रूप से, अनुभव) नहीं है।

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

      • पिछले काम के निर्माण के बाद से सभी कमिट्स की सूची
      • उन कमिट्स के कमिट करें
      • फाइलों की सूची बदल जाती है
      • निर्माण से कंसोल को स्वयं त्रुटि या परीक्षण विफलता दिखाते हुए
    • प्रश्न: इसके लिए मुझे किस तरह के हार्डवेयर की आवश्यकता होगी?

      एक: एक वीएम पर्याप्त होगा

    • प्रश्न: एक बार एक निर्माण समाप्त हो गया है और परीक्षण किया गया है, क्या यह एक सामान्य तरीका है कि एक ftp साइट पर बनाने के लिए या आंतरिक उपयोग के लिए कुछ और तरीका है? विचार यह है कि यह मशीन बिल्ड बनाती है, और हम सभी इसके पास जाते हैं, लेकिन अगर हमें करना है तो डीबग बिल्ड बना सकते हैं।

      ए: हडसन आप जो कुछ भी इसके साथ चाहते हैं, वह कर सकते हैं, जिसमें ID'ing को md5 हैश के माध्यम से शामिल करना, इसे अपलोड करना, इसे कॉपी करना, इसे संग्रहीत करना, आदि यह स्वचालित रूप से करता है और आपको बिल्ड कलाकृतियों का एक लंबा चलने वाला इतिहास प्रदान करता है।

    • प्रश्न: कितनी बार हमें इस तरह का निर्माण करना चाहिए?

      A: हमारे पास हर घंटे SVN का पोल है, कोड परिवर्तन की तलाश है, फिर एक बिल्ड चल रहा है। रात ठीक है, लेकिन कल आपने जो काम किया है उसके बाद से कुछ बेकार IMO आपके दिमाग में सुबह उठते ही ताजा हो जाएगा।

    • प्रश्न: अंतरिक्ष का प्रबंधन कैसे किया जाता है? अगर हम रात का निर्माण करते हैं, तो क्या हमें सभी पुराने बिल्डरों के आसपास रखना चाहिए, या लगभग एक सप्ताह बाद उन्हें खोदना शुरू करना चाहिए?

      एक: आप पर निर्भर करता है, इतने लंबे समय के बाद मैं अपनी बिल्ड कलाकृतियों को दीर्घकालिक भंडारण में ले जाता हूं या उन्हें हटा देता हूं, लेकिन सभी डेटा जो कि मेरे द्वारा रखे गए पाठ फ़ाइलों / xml फ़ाइलों में संग्रहीत होते हैं, इससे मुझे चैंज, स्टोर, ग्राफ ग्राफ को स्टोर करने की सुविधा मिलती है। वर्ट्री के साथ सर्वर पर कम जगह की खपत। इसके अलावा आप हडसन सेट कर सकते हैं केवल कलाकृतियों का निर्माण करने के लिए एक अनुगामी # से

    • प्रश्न: क्या कुछ और है जो मैं यहाँ नहीं देख रहा हूँ?

      A: नहीं, जाओ हडसन अभी जाओ, तुम निराश नहीं होंगे!


    1
    बहुत बढ़िया जवाब! मैंने केवल क्रूज़कंट्रोल का उपयोग किया है, लेकिन आपके पास हडसन के लिए अच्छी बिक्री है।
    बेन एस

    1
    संकेत के लिए धन्यवाद - हडसन सही उपकरण की तरह दिखता है।
    एमएमआर

    1
    क्या आप पहले शब्द पर लिंक डाल सकते हैं, कृपया?
    झॉनी डी। कैनो -लेफ्टवेयर- २०

    जहां आप हडसन के लिए एक लिंक के लिए पूछ रहे हैं? यदि ऐसा है, तो मैंने इसे जोड़ा, अच्छी कॉल :)
    एलन राइस

    5
    यदि कोई भी इसे याद करता है, तो हडसन को इसके मूल डेवलपर्स द्वारा जेनकिन्स के रूप में नामित / नाम दिया गया है। अब आप जेनकिंस को चुनना सबसे अच्छा है, क्योंकि यह प्रश्न आपको समझाने की संभावना है।
    जोनिक

    26

    हमें निम्नलिखित कॉम्बो के साथ बहुत अच्छी किस्मत मिली है:

    1. विज़ुअल स्टूडियो (विशेष रूप से, MSBuild.exe कमांड लाइन टूल का उपयोग करके और इसे हमारी समाधान फ़ाइलों को पारित करने के लिए। msbuild लिपियों की आवश्यकता को हटा देता है)
    2. NAnt (जैसे XML सिंटैक्स / टास्क लाइब्रेरी MSBuild से बेहतर है। इसके अलावा P4 src कंट्रोल ऑपरेशन के लिए विकल्प हैं)
    3. CruiseControl.net - निगरानी / आरंभ करने के लिए वेब डैशबोर्ड में बनाया गया है।

    CCNet सफल / असफल होने पर ईमेल भेजने के लिए नोटिफ़ायर में बनाया गया है

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

    हार्डवेयर पर: आप जितने शक्तिशाली हो सकते हैं। अधिक शक्ति / स्मृति = तेजी से निर्माण समय। यदि आप इसे बर्दाश्त कर सकते हैं, तो आपको शीर्ष-पायदान बनाने की मशीन पर पछतावा नहीं होगा, चाहे वह कितना भी छोटा समूह हो।

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

    बिल्ड नोटिफिकेशन पर: यह CCNet में बनाया गया है, लेकिन यदि आप एक अतिरिक्त कदम के रूप में स्वचालित परीक्षण को जोड़ने जा रहे हैं, तो इसे गेट-गो से प्रोजेक्ट में बनाएँ। किसी परियोजना के बड़े हो जाने के बाद फिट परीक्षणों को वापस करना बेहद कठिन है। वहाँ बाहर परीक्षण चौखटे पर जानकारी के टन है (शायद SO पर भी जानकारी का एक टन के रूप में अच्छी तरह से), तो मैं कुछ विशिष्ट उपकरणों के नाम पर टाल दूँगा।



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

    सुझावों के लिए धन्यवाद। मैं अपने औचित्य में उसका उपयोग करूँगा।
    एमएमआर

    1
    हम यहाँ Cnt और C ++ बिल्ड के लिए NAnt / Subversion / CC.Net के साथ एक निर्माण मशीन का उपयोग करते हैं और यह वास्तव में एक महान उपकरण है कि आप किसी भी अन्य परियोजना को नहीं तोड़ेंगे। यह एक पुस्तकालय को बदलते समय किसी अन्य परियोजना को तोड़ने के डर को दूर करता है, क्योंकि वैसे भी आप इसे जल्द ही देखेंगे अगर यह सब कुछ टूट गया
    जुलिएन रोनाग्लिया

    11

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


    10

    कैसे? Carel Lotz के ब्लॉग पर एक नज़र डालें

    क्यों? कई कारण हैं जो मैं सोच सकता हूं:

    • एक काम कर रहे निर्माण, जब ठीक से लागू किया जाता है, तो इसका मतलब है कि बिल्ड के हरे होने पर आपके सभी डेवलपर्स अपनी मशीन पर निर्माण कर सकते हैं
    • एक कामकाजी बिल्ड, जब ठीक से लागू किया जाता है, तो इसका मतलब है कि आप किसी भी समय तैनात करने के लिए तैयार हैं
    • एक काम कर रहे निर्माण, जब ठीक से लागू किया जाता है, तो इसका मतलब है कि आपने जो भी जारी किया है वह आपके स्रोत नियंत्रण प्रणाली की यात्रा कर चुका है।
    • एक काम कर रहे निर्माण, जब ठीक से लागू किया जाता है, तो इसका मतलब है कि आप अपने एकीकरण जोखिम को कम करते हुए, जल्दी और अक्सर एकीकृत करते हैं।

    निरंतर एकीकरण पर मार्टिन फाउलर का लेख निश्चित पाठ बना हुआ है। इस पर एक नज़र डालो!


    5

    पक्ष में मुख्य तर्क यह है कि यह आपकी विकास प्रक्रिया की लागत में कटौती करेगा, जितनी जल्दी हो सके आपको यह चेतावनी देगा कि आपके पास एक टूटी हुई बिल्ड या विफल परीक्षण है।

    कई डेवलपर्स के काम को एकीकृत करने की समस्या एक टीम के बढ़ने का मुख्य खतरा है। टीम जितनी बड़ी हो जाती है, उतना ही कठिन होता है कि वे अपने काम में तालमेल बिठाएं और एक-दूसरे के बदलाव के साथ खिलवाड़ करना बंद करें। एकमात्र अच्छा उपाय यह है कि उन्हें काम पूरा होने पर (कभी-कभी "कहानियां" कहा जाता है) छोटी इकाइयों में जाँच करके, "जल्दी और अक्सर एकीकृत" करने के लिए कहा जाता है।

    आपको दिन भर में कुछ जाँचों के निर्माण की मशीन बना लेनी चाहिए। क्रूज़ कंट्रोल के साथ, आप अपने टास्क बार पर एक आइकन पा सकते हैं, जो बिल्ड के टूटने पर लाल हो जाता है (और आपसे बात भी करता है!)।

    फिर आपको एक रात्रिकालीन पूर्ण स्वच्छ निर्माण करना चाहिए जहां स्रोत संस्करण को लेबल किया गया हो (एक विशिष्ट बिल्ड नंबर दिया गया हो) जिसे आप अपने हितधारकों (उत्पाद प्रबंधकों, क्यूए लोगों) को प्रकाशित करना चुन सकते हैं। ऐसा तब होता है जब बग की सूचना दी जाती है, यह एक ज्ञात बिल्ड नंबर के विरुद्ध है (यह अत्यंत महत्वपूर्ण है)।

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


    1
    बहुत नीचा से कारण (ओं) को सुनने में दिलचस्पी होगी!
    डैनियल ईयरविकर

    1
    जैसा कि I। यह सवाल का एक अच्छा जवाब है। मुझे विशेष रूप से प्रकाशन और संस्करण के बारे में बात पसंद है।
    एमएमआर

    5

    Mjmarsh ने जो कहा, उस पर थोड़ा सा निर्माण करने की कोशिश कर रहे हैं, क्योंकि उन्होंने एक बड़ी नींव रखी है ...

    • दृश्य स्टूडियो। MSBuild ठीक काम करता है।
    • NantContrib । यह पेरफोर्स ऑपरेशन जैसे अतिरिक्त कार्य प्रदान करेगा।
    • CruiseControl.net । यह फिर से मूल रूप से आपका "बिल्ड डैशबोर्ड" है।

    उपरोक्त सभी (VS के लिए सहेजें) खुला स्रोत है, इसलिए आप किसी भी अतिरिक्त लाइसेंसिंग को नहीं देख रहे हैं।

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

    NAnt में nunit / nunit2 के लिए कार्य शामिल हैं , इसलिए आप वास्तव में अपनी इकाई परीक्षण को स्वचालित कर सकते हैं। फिर आप परिणामों के लिए स्टाइलशीट लागू कर सकते हैं, और क्रूज़कॉन्ट्रोल.नेट द्वारा प्रदान किए गए ढांचे की मदद से, हर बिल्ड के लिए अच्छे पठनीय, मुद्रण योग्य इकाई परीक्षण परिणाम हैं।

    Ndoc पर भी यही बात लागू होती है कार्य । अपने दस्तावेज़ों का निर्माण और उपलब्ध, हर निर्माण के लिए करें।

    आप उदाहरण के लिए, अन्य आदेशों को निष्पादित करने के लिए निष्पादन कार्य का उपयोग भी कर सकते हैं, इंस्टालशील्ड का उपयोग करके विंडोज इंस्टालर का उत्पादन कर सकते हैं।


    विचार निर्माण को जितना संभव हो उतना स्वचालित करने के लिए है, क्योंकि मानव गलती करता है। सामने बिताया गया समय सड़क से नीचे बचा है। लोग बिल्ड प्रोसेस से गुजर कर बिल्ड को बेबीसिट नहीं कर रहे हैं। अपने बिल्ड के सभी चरणों को पहचानें, प्रत्येक कार्य के लिए NAnt स्क्रिप्ट बनाएँ, और अपनी NAnt स्क्रिप्ट को एक-एक करके तब तक बनाएँ जब तक आप अपनी पूरी बिल्ड प्रक्रिया को पूरी तरह से स्वचालित नहीं कर लेते। यह तब आपके सभी बिल्ड को एक स्थान पर रखता है, जो तुलनात्मक उद्देश्यों के लिए अच्छा है। बिल्ड 426 में कुछ तोड़ जो बिल्ड 380 में ठीक काम किया है? खैर, परीक्षण के लिए तैयार डिलिवरेबल्स हैं - उन्हें पकड़ो और दूर परीक्षण करें।


    मैं ndoc के बारे में भूल गया था। डॉक्यूमेंटेशन मोम की एक पूरी 'नोथर बॉल' है जिससे हम निपटने वाले हैं- रिमाइंडर के लिए धन्यवाद।
    mmr

    4
    • लाइसेंस की जरूरत नहीं। CruiseControl.net स्वतंत्र रूप से उपलब्ध है और इसे बनाने के लिए केवल .NET sdk की जरूरत है।
    • एक निर्मित सर्वर, यहां तक ​​कि स्वचालित इकाई परीक्षणों के बिना भी बिल्डिंग रिलीज़ के लिए एक नियंत्रित वातावरण प्रदान करता है। कोई और नहीं "जॉन आमतौर पर अपनी मशीन पर बनाता है, लेकिन वह बीमार है। किसी कारण से मैं अपनी मशीन पर नहीं बना सकता"
    • अभी मैंने एक वर्चुअल पीसी सेशन में सेट किया है।
    • हाँ। निर्माण को कहीं सुलभ होने की आवश्यकता है। विकास बिल्ड में डिबगिंग चालू होना चाहिए। रिलीज बिल्ड को इसे बंद कर देना चाहिए था।
    • कितनी बार आप पर निर्भर है। यदि सही तरीके से सेट किया गया है, तो आप बहुत कम ओवरहेड में प्रत्येक चेक के बाद निर्माण कर सकते हैं। यदि आपके पास इकाई परीक्षण हैं, तो यह एक बहुत अच्छा विचार है।
    • जब तक आवश्यक हो, मील के पत्थर और रिलीज रखें। कुछ और आप कितनी बार निर्माण करते हैं: निरंतर पर निर्भर करता है? फेंक देना। रोज? एक सप्ताह का मूल्य रखें। साप्ताहिक? दो महीने का मूल्य रखें।

    आपकी परियोजना जितनी बड़ी होगी, आपको स्वचालित बिल्ड मशीन के लाभ दिखाई देंगे।


    3

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

    यह निश्चित रूप से मानता है, आप इसे हर चेक इन (निरंतर एकीकरण) के साथ बनाने के लिए सेट करते हैं।

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


    1

    क्यों: 10 साल पहले हम सॉफ्टवेयर डेवलपर्स के लिए nth डिग्री के लिए कुछ का विश्लेषण करने के लिए इस्तेमाल किया दस्तावेजों (एक मानव भाषा में लिखा) 'पर हस्ताक्षर किए' तो कोड लिखना शुरू करते हैं। हम यूनिट टेस्ट, स्ट्रिंग टेस्ट करेंगे और फिर हम सिस्टम टेस्ट से टकराएंगे: पहली बार एक पूरे के रूप में सिस्टम को एक साथ चलाया जाएगा, कभी-कभी सप्ताह या महीनों के बाद जब हम दस्तावेजों पर हस्ताक्षर कर देते हैं। यह केवल तब था जब हम उन सभी मान्यताओं और गलतफहमी को उजागर करेंगे जब हमने सब कुछ का विश्लेषण किया था।

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

    कैसे: कैसे के लिए, मैंने इस बारे में थोड़ी देर पहले ब्लॉग किया था: [ यहाँ क्लिक करें ]

    8 से अधिक पदों पर यह .NET सॉल्यूशंस के लिए विंडोज वातावरण में जेनकिंस सर्वर स्थापित करने के तरीके पर कदम से कदम जाता है।


    1
    हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं।
    तिलामा

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

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