2013-01-23 120 views
7

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

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

क्या इन क्षणिक निर्माण कलाकृतियों के प्रबंधन/प्रकाशन का एक सहमति, मानकीकृत तरीका है?

+4

आप कलाकृतियों को क्यों स्टोर करेंगे? बिल्डों को फिर से बनाया जा सकता है। –

+0

(मेरा मतलब गिट में है, वैसे भी। क्या अधिकांश सीआई सर्वर किसी कॉन्फ़िगर करने योग्य समय के लिए चारों ओर निर्माण नहीं करते हैं?) –

+0

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

उत्तर

10

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

अधिकांश निरंतर एकीकरण उपकरण (जैसे जेनकींस) में पिछले एक्स निर्माण कलाकृतियों या पिछले महीने के भीतर किए गए सभी निर्माण कलाकृतियों को संग्रहित करने की क्षमता होगी। उनके पास प्लगइन भी होते हैं जो आपके द्वारा चुने गए निर्माण को बढ़ावा देने की प्रक्रिया को समर्थन और स्वचालित करने में सहायता करते हैं (यानी Jenkins build promotion)।

बिल्ड आर्टिफैक्ट्स का प्रबंधन करने के लिए एक आर्टिफैक्ट रिपोजिटरी या सीआई सर्वर का उपयोग करके आप आम तौर पर एक एपीआई के माध्यम से कलाकृतियों तक पहुंच सकते हैं जो बहुत उपयोगी होता है जब आप तैनाती प्रक्रियाओं को स्वचालित करना चाहते हैं उदाहरण के लिए आप 'getLastSuccesfullBuild' जैसे कॉल कर सकते हैं। और 'getLastPromotedBuild()' आदि

+2

+1 नेक्सस, आर्टिफैक्टरी या आर्किवा जैसे रेपोजिटरी प्रबंधक, इस समस्या को हल करने के लिए डिज़ाइन किए गए हैं। उनकी विशेषताओं को देखें। हम नेक्सस पेशेवर का उपयोग करते हैं जो हमें हमारी रिलीज को "मंच" करने और प्रमाणीकरण वर्कफ़्लोज़ बनाने में सक्षम बनाता है, जहां DEV बिल्ड निर्माण कलाकृतियों को बनाता है, जिसे बाद में उत्पादन भंडार को मारने से पहले टेस्ट और क्यूए द्वारा अनुमोदित किया जाता है। –