गिट रिपॉजिटरीज़ के भीतर जेनकींस कॉन्फ़िगरेशन को एकीकृत करने में सक्षम होने के लिए मैंने pipeline feature का उपयोग करके कुछ पुराने जेनकींस नौकरियों को नए लोगों में स्थानांतरित कर दिया है। यह ठीक काम कर रहा है लेकिन मैं खुद से पूछ रहा हूं कि इमारत के दौरान होने वाले चेकआउट की संख्या को कम करने का कोई तरीका है या नहीं।जेनकींस पाइपलाइन: क्या एकाधिक चेकआउट से बचना संभव है?
सेटअप
- मैं एक जेनकींस multibranch काम जो मेरे Git भंडार से संबंधित है
मैं अपने Git भंडार
#!groovy node { stage 'Checkout' checkout scm // build project stage 'Build' ... }
समस्या में एक Jenkinsfile है है
जब मैं अपने दूरस्थ branche BRANCH_1 करने के लिए धक्का, multibranch जेनकींस काम शुरू हो रहा है और मैं समझता हूँ कि निम्न चरणों का पालन होता है:
- multibranch काम शाखा अनुक्रमण के लिए एक
git fetch
बनाता है और काम चलाता है मेरे दूरस्थ शाखा करने के लिए इसी: BRANCH_1_job - BRANCH_1_job ट्रिगर शाखा के Jenkinsfile पुनः प्राप्त करने के एक
git checkout
बनाता - जेनकिन्सफाइल को निष्पादित किया गया है और
checkout scm
स्वयं बनाता है। अगर मैं ऐसा नहीं करता, तो मैं अपनी परियोजना नहीं बना सकता क्योंकि कोई स्रोत उपलब्ध नहीं है।
तो मेरी शाखा बनाने के लिए, मैं एक git fetch
और दो git checkout
के साथ समाप्त होता हूं।
प्रश्न
- मैं इस प्रक्रिया सही ढंग से समझ है? या किसी को याद किया था?
git checkout
की संख्या को कम करने का कोई तरीका है? जब मैं official examples की जांच करता हूं, तो वे सभी पहले चरण के रूप में चेकआउट एसएमएम बनाते हैं। मैं व्यक्तिगत रूप से सोचता हूं कि मुझे ऐसा करने की ज़रूरत नहीं है क्योंकि जेनकिन्स नौकरी को जेनकिन्सफाइल को पुनः प्राप्त करने के लिए पहले से ही चेकआउट करना पड़ा था (इसलिए मेरे स्रोत किसी भी तरह से यहां होना चाहिए)।- क्या आपको नहीं लगता कि गिट रेपो में बड़ी संख्या में रेफरी होने पर इन एकाधिक चेकआउट खराब प्रदर्शन कर सकते हैं?
धन्यवाद आप सभी
यदि आप बहु-शाखा पाइपलाइन का उपयोग करने पर सेट नहीं हैं, तो आप जेनकिन्स में 'जेनकिन्सफाइल' के साथ एक सामान्य (एकल शाखा) पाइपलाइन नौकरी बना सकते हैं जो एक चेकआउट करता है और फिर चेक से आपकी वास्तविक बिल्ड स्क्रिप्ट लोड करता है 'लोड' ci/build-script-in-your-repo.gy'' के माध्यम से बाहर भंडार। दुर्भाग्य से, आप उस मामले में प्रत्येक शाखा के लिए अलग-अलग नौकरियों को खो देंगे। – Carsten
मैं जानता हूँ कि तुम क्या मतलब है, लेकिन मैं करना चाहते हैं: - नौकरी विन्यास मेरे भंडार में और मेरे जेनकींस में नहीं मेरी ci config रखने - (शाखा प्रति एक नौकरी की तरह अच्छा multibranch सुविधाओं का उपयोग, इसलिए भी आसानी से देख सकते हैं जो शाखा असफल हो रही है) – Bastien