5

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

उदाहरण के लिए

:

http://branch.domain.com/branch101/

http://branch.domain.com/otherBranchName/

वर्तमान में, मैं SVN, Nant और CruiseControl.Net उपयोग कर रहा हूँ, लेकिन मैं खुले हूँ एक और निरंतर एकीकरण सर्वर या निर्माण अगर स्थिति की मांग है तो पटकथा।

+0

सुनिश्चित नहीं है कि मैं प्रश्न समझता हूं - क्या आप कोड को ब्रांच करते समय स्वचालित रूप से बनाए जाने के लिए एक नई CC.net प्रोजेक्ट ढूंढ रहे हैं?- या एकाधिक शाखाओं को बनाने के लिए सीसीनेट सेट अप करने का सबसे अच्छा तरीका - आप वर्चुअल निर्देशिका का उल्लेख करते हैं - क्या हम वेब ऐप्स बोल रहे हैं? – Richard

+0

दोनों के लिए हाँ, मैंने प्रश्न को स्पष्ट करने के लिए संपादित किया है (उम्मीद है!) –

उत्तर

1

मुझे असली सवाल नहीं पता है। वैसे भी मैं आपको हडसन (http://hudson-ci.org/) का सुझाव देता हूं।

इसका उपयोग करना आसान है। एक्सएमएल फाइलों के साथ कॉन्फ़िगर करना आसान है। इसमें रिमोट एपीआई है।

+0

+1 हडसन के लिए +1। (सावधान रहें, हालांकि: यदि आप कई प्लेटफार्मों पर निर्माण करते हैं, तो हडसन अगले प्लेटफॉर्म पर आगे बढ़ने तक आगे बढ़ेगा। इसका मतलब है कि सबसे धीमी बिल्ड/टेस्ट मशीन हर किसी को धीमा कर देती है। कम से कम, पिछले साल यह मामला था जब हमने कोशिश की।) – sbi

+0

क्या आप निश्चित हैं? मंच के लिए क्या आप हडसन नौकरी का मतलब है? क्योंकि आप एक और "निष्पादक बिल्डर" सेट कर सकते हैं। मैं इसका कभी भी उपयोग नहीं करता, लेकिन हडसन बिल्ड वितरित करने के लिए "मास्टर/गुलाम" मोड का समर्थन करता है। –

+0

@ungarida: हडसन हमारे द्वारा मूल्यांकन किए जाने वाले अधिक आशाजनक सीआई उपकरणों में से एक था और आईएसआर कि हमने इसे इसके कारण छोड़ दिया। लेकिन मुझे यह भी याद नहीं है कि हडसन के लिए "नौकरियां" क्या हैं, इसलिए मुझे लगता है कि इसका मतलब है, नहीं, मुझे यकीन नहीं है। – sbi

1

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

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

3

यह किया जा सकता है, लेकिन इसमें से बहुत से आपकी बिल्ड स्क्रिप्ट पर निर्भर होने जा रहे हैं। यदि आप शीर्ष स्तर के svn फ़ोल्डर की निगरानी करने के लिए सीसीनेट को बताते हैं तो उदाहरण के लिए आप प्रोजेक्ट मॉनीटर करते हैं:

http://myserver.com/svn/project/trunk के बजाय। यदि http://myserver.com/svn/project में कोई भी परिवर्तन देखा जाता है तो यह एक बिल्ड को बंद कर देगा।

अब, यह निर्धारित करने के लिए कि कौन सा स्रोत पुराना है या निर्माण करने के लिए कोई नई शाखा है, यह आपके निर्माण स्क्रिप्ट पर निर्भर है। बिल्ड स्क्रिप्ट किसी भी नई शाखाओं के लिए एक नया वीडीआईआर तैयार करेगी।

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

सीसीनेट कॉन्फ़िगरेशन अपडेट होने के बाद cc.net कॉन्फ़िगरेशन फ़ाइल को संशोधित कर देगा और आपकी नई शाखा प्रोजेक्ट को जोड़ने वाली कॉन्फ़िगर को पुनः लोड कर देगा। वह शाखा प्रोजेक्ट चलना शुरू कर देगा और अपनी नई शाखा का निर्माण करेगा।

+0

यह मेरी राय में, वास्तव में एक बुरा विचार है। मुझे लगता है कि आप बहुत अधिक तरीके से स्वचालित कर रहे हैं। इस समाधान की तुलना में ccnet.config फ़ाइल में ब्लॉक को जोड़ने में कितनी समस्या हो सकती है? –

+1

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

+1

@ जोशकोड्रॉफ मुझे लगता है कि यह राय का विषय है, "महंगी" शाखा एक कारण है कि एक विकास (जोखिम में वृद्धि) में बहुत से विकास को एक साथ फेंक दिया जाता है। निर्माण प्रक्रिया को पुन: कॉन्फ़िगर करने के लिए मशीन में लॉगिन करने के लिए ऐसा लगता है जैसे यह शाखा बनाने के लिए महत्वपूर्ण लागत जोड़ता है। –