जेनकिंस में कलाकृतियों को संग्रहित करें


132

क्या कोई मुझे निर्माण प्रक्रिया में कलाकृतियों का विचार समझा सकता है?

मेरे पास कार्यक्षेत्र निर्देशिका है जहां मैं अपनी चीप स्क्रिप्टों को संकलित करने और चलाने के लिए कोड की जांच करता हूं। अंत में, मेरे मामले में, मुझे एक जार फ़ाइल मिलती है जो स्थापित करने के लिए तैयार है। क्या वह कलाकारी मानी जाती है?

जार फ़ाइल डालने के लिए मुझे अपनी बिल्ड स्क्रिप्ट कहां बताई जानी चाहिए? कार्यक्षेत्र निर्देशिका में? मेरी जार फ़ाइल को चर जैसे BUILD_IDऔर इस तरह के आधार पर एक अद्वितीय फ़ाइल नाम मिलता है , मैं जेनकिन्स को कैसे बता सकता हूं कि किस फाइल को चुनना है?

संपादित करें: ठीक है, इसलिए मैंने ऐसा कुछ करने की कोशिश की:

यहाँ छवि विवरण दर्ज करें

पथ मेरे कार्यक्षेत्र में अभी तक मौजूद नहीं है, क्योंकि निर्माण स्क्रिप्ट को इसे बनाने के लिए माना जाता है, और निश्चित रूप से, .jarऔर .propertiesफाइलें नहीं हैं क्योंकि वे अभी तक उत्पन्न नहीं हुए हैं। यह मुझे एक त्रुटि क्यों देता है? लगता है जैसे मुझे कुछ याद आ रहा है।

इसके अलावा, जेनकिंस प्रत्येक निर्माण के बाद कलाकृतियों को हटाता है (संग्रहीत कलाकृतियों को नहीं, मुझे पता है कि मैं इसे हटाने के लिए कह सकता हूं)? अन्यथा यह हार्ड ड्राइव को बहुत जल्दी रोक देगा।


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

3
चेतावनी से डरें नहीं, यदि निर्माण के बाद कोई कलाकृति उत्पन्न होती है, तो यह आपके कॉन्फ़िगरेशन द्वारा संग्रहीत की जाएगी (हालांकि कॉन्फ़िगरेशन पृष्ठ में एक चेतावनी है)।
हुआंग एफ लेई

जवाबों:


68

आपकी समझ सही है, जेनकिंस अर्थ में एक कलाकृति एक निर्माण का परिणाम है - निर्माण प्रक्रिया का इरादा आउटपुट।

एक आम सम्मेलन एक build, targetया binनिर्देशिका में एक निर्माण का परिणाम डाल करने के लिए है ।

जेनकिंस अभिलेखागार ग्लोब ( target/*.jar) का उपयोग आसानी से सही फ़ाइल को लेने के लिए कर सकता है, भले ही आपके पास एक अद्वितीय नाम हो।


@Andres धन्यवाद, भी, जेनकींस प्रत्येक निर्माण के बाद कलाकृतियों को हटाता है (संग्रहीत कलाकृतियों को नहीं, मुझे पता है कि मैं इसे उन लोगों को हटाने के लिए कह सकता हूं)? या क्या मैं इसे करने के लिए जिम्मेदार हूं?
माइकल

6
@michael: आपको अपने आप को कार्यक्षेत्र को साफ़ करना होगा, यह सुनिश्चित करने के लिए हर निर्माण से पहले कम से कम लक्ष्य निर्देशिका को साफ़ करने का अच्छा अभ्यास है यह सुनिश्चित करने के लिए कि आप पहले के निर्माण के परिणामों के साथ समाप्त नहीं होते हैं।
एंडर्स लिंडहल

@ मिचेल आप एक 'क्लीन' बिल्ड स्टेप जोड़ सकते हैं। जैसे मावेन के साथ -sh 'mvn clean package'
स्नोक्रैश

@AndersLindahl - "कॉमन कन्वेंशन एक बिल्ड, टारगेट या बिन डायरेक्टरी में बिल्ड का परिणाम डालने के लिए है।" आप एक बिन निर्देशिका की बात कर रहे हैं जो सभी परियोजनाओं द्वारा साझा की गई है? मैं उसको कैसे करू? क्या यह पोस्ट-बिल्ड एक्शन है?
user3240688

@ user3240688 नहीं, मैं प्रति-प्रोजेक्ट लक्ष्य फ़ोल्डर की बात कर रहा हूं। यदि आप एक ही साझा किए गए फ़ोल्डर में कई नौकरियों से कलाकृतियों को चाहते हैं, तो आपको "प्रकाशन से अधिक $ PROTOCOL" प्लगइन्स में से एक का उपयोग करके कलाकृतियों को प्रकाशित करना होगा।
एंडर्स लिंडहल

11

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

विरूपण साक्ष्य नाम के रूप में एक नियमित अभिव्यक्ति को परिभाषित करना संभव है। मेरे मामले में मैंने उन सभी फ़ाइलों को ज़िप किया, जिन्हें मैं निर्माण के दौरान एक निरंतर नाम के साथ एक फ़ाइल में संग्रहीत करना चाहता था।


3
"विरूपण साक्ष्य नाम के रूप में एक नियमित अभिव्यक्ति को परिभाषित करना संभव है। मेरे मामले में मैंने सभी फाइलों को ज़िप किया" क्या आप इसे समझा सकते हैं? यह वही लगता है जो मैं चाहता हूं?
क्रिस मिलबर्न

7

इसके अलावा, जेनकिंस प्रत्येक निर्माण के बाद कलाकृतियों को हटा देता है? (संग्रहीत कलाकृतियों को नहीं, मुझे पता है कि मैं इसे हटाने के लिए कह सकता हूं)

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


1

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

मेरे लिए काम करने वाली सेटिंग्स को कलाकृतियों के साथ रखने के लिए बिल्ड के "मैक्स #" के लिए 1 दर्ज करना है और फिर कलाकृतियों को संग्रहीत करने के लिए पोस्ट-बिल्ड एक्शन करना है। इस तरह, सभी बिल्ड से सभी कलाकृतियों को संग्रहीत किया जाएगा, बिल्ड से सभी जानकारी को सहेजा जाएगा, लेकिन केवल अंतिम बिल्ड ही अपनी कलाकृतियों को रखेगा।

पुराने बनाए गए विकल्पों को छोड़ दें

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