गिट, मावेन और जेनकिंस - संस्करण, देव और रिलीज वर्कफ़्लो बनाता है


12

Git, maven और jenkins के साथ निम्नलिखित करने का पसंदीदा तरीका क्या है:

मैं एक एप्लिकेशन विकसित कर रहा हूं, जिसे मैं "देव" और "रिलीज" शाखाओं को बनाए रखना चाहूंगा। मैं दोनों के निर्माण के लिए जेनकींस पसंद करूंगा। यह इसलिए हो सकता है कि रिलीज-कलाकृतियों में 1.5.2 जैसे संस्करण होंगे और देव-बिल्ड सिर्फ 0.0.1-SNAPSHYs होंगे। मैं 2 अलग pom.xml फ़ाइलों के लिए नहीं करना चाहते हैं।

मैंने प्रोफाइल में देखा, लेकिन वे विरूपण साक्ष्य संस्करणों को बदलने में सक्षम नहीं लगते हैं। जिस तरह से मैंने देखा कि टेस्ट-बिल्ड में एक 'क्वालिफायर' जोड़ा जा सकता है। बेशक, मैं सिर्फ फ़ाइल का नाम बदल सकता हूं, क्योंकि इस पर वास्तविक विरूपण साक्ष्य-जानकारी महत्वपूर्ण नहीं है, क्योंकि ऐप एक स्टैंडअलोन है।

ऐसा करने का पसंदीदा तरीका क्या होगा? या आप यह कैसे करेंगे?

जवाबों:


3

मुझे लगता है कि इन शाखाओं के बीच एक अंतर्निहित संबंध होना चाहिए जो संस्करण संख्या की समस्या को दूर करने के लिए होना चाहिए।

जारी

मैं कल्पना करूँगा कि आप देव शाखा से रिलीज़ शाखा में प्रोडक्शन-मर्ज कोड जैसा कुछ कर सकते हैं, फिर मावेन रिलीज़ (जेनकिंस या मैन्युअल रूप से) करें। यह स्वचालित रूप से अगले नंबर पर संस्करण संख्याओं को रोल करता है। तो आप इस शाखा में कोड 1.4.7-स्नैपशॉट को मर्ज करते हैं, रिलीज़ और कट संस्करण 1.4.7 करते हैं, और मावेन स्वचालित रूप से आपकी काम की प्रतिलिपि को 1.4.8-स्नैपशॉट में रोल करता है।

अद्यतन आधारभूत (वैकल्पिक)

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

बेसलाइन से देव शाखा में विलय

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


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


"मावेन रिलीज़" से क्या आपको मावेन-रिलीज़-प्लगइन का मतलब है?
वार्सा

हां। आप जेनकींस में मावेन रिलीज़ बिल्ड बनाने के लिए कुछ बिल्ड भी सेट कर सकते हैं, जो मावेन-रिलीज़-प्लगइन को आमंत्रित करता है।
रानू

यह "कुंजी" की तरह लग रही है। धन्यवाद!
वार्सा

1

अपने दृष्टिकोण को पुनर्विचार करें।

रिलीज़ संस्करण के लिए 1.4.2 और फिर अगले विकास के लिए 1.4.3-स्नैपशॉट का उपयोग करना बहुत आम है।

जब आपको 1.4.2 रिलीज को बनाए रखने की आवश्यकता होती है, तो इसे अपनी 1.4.2 कलाकृति से उत्पन्न होने वाली शाखा से हटा दें।

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

नोट: मैंने पाया है कि वास्तविक कलाकृतियों के निर्माण के लिए एकल pom.xml का उपयोग करना बहुत फायदेमंद है और ग्राहक को जाने के लिए वास्तविक बिट्स बनाने के लिए एक और pom.xml।

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