जेनकिंस में मेरे दो काम हैं, दोनों को एक ही पैरामीटर की जरूरत है।
मैं पहली नौकरी को एक पैरामीटर के साथ कैसे चला सकता हूं ताकि जब वह दूसरी नौकरी को चलाता है, तो उसी पैरामीटर का उपयोग किया जाए?
जेनकिंस में मेरे दो काम हैं, दोनों को एक ही पैरामीटर की जरूरत है।
मैं पहली नौकरी को एक पैरामीटर के साथ कैसे चला सकता हूं ताकि जब वह दूसरी नौकरी को चलाता है, तो उसी पैरामीटर का उपयोग किया जाए?
जवाबों:
आप Parameterized ट्रिगर प्लगिन का उपयोग कर सकते हैं जो आपको एक कार्य से दूसरे कार्य में पैरामीटर पास करने देगा।
आपको इस पैरामीटर को जोड़ने की आवश्यकता है जो आप अपस्ट्रीम से डाउनस्ट्रीम में पास हुए हैं।
1.Post-Build Actions> सिलेक्ट करें "अन्य प्रोजेक्ट्स पर ट्रिगर पैरामीटरलाइज्ड बिल्ड"
2. मान के साथ पर्यावरण चर को पूरा करें। वैल्यू जेनकींस बिल्ड पैरामीटर्स भी हो सकता है।
विस्तृत चरण यहाँ देखे जा सकते हैं: -
आशा है कि यह उपयोगी है :)
यहां स्वीकृत उत्तर मेरे उपयोग के मामले में काम नहीं करता है। मुझे एक काम में गतिशील रूप से पैरामीटर बनाने और उन्हें दूसरे में पारित करने में सक्षम होने की आवश्यकता थी। जैसा कि मार्क मैककेना का उल्लेख है कि शेल बिल्ड चरण से पोस्ट बिल्ड कार्यों के लिए चर का निर्यात करने का कोई तरीका प्रतीत नहीं होता है।
मैंने किसी फ़ाइल में मान लिखकर और उस फ़ाइल का उपयोग मापदंडों के रूप में 'पोस्ट-बिल्ड-एक्शन जोड़ें' के माध्यम से आयात करने के लिए पैरामीटर का उपयोग करके एक वर्कअराउंड हासिल किया -> 'ट्रिगर पैरामीटराइज्ड बिल्ड ...' फिर 'पैरामीटर्स जोड़ें' का चयन करें - > 'गुण फाइल से पैरामीटर'।
मुझे लगता है कि ऊपर दिए गए उत्तर को कुछ अपडेट की आवश्यकता है:
मैं अपनी अपस्ट्रीम बिल्ड कलाकृतियों को स्टोर करने के लिए एक डायनामिक डायरेक्टरी बनाने की कोशिश कर रहा था, इसलिए मैं अपने अपस्ट्रीम जॉब बिल्ड नंबर को डाउनस्ट्रीम जॉब में पास करना चाहता था। मैंने उपरोक्त चरणों की कोशिश की, लेकिन यह काम नहीं कर सका। यहाँ है कि यह कैसे काम किया:
इसका कारण यह है कि जेनकिंस के नए संस्करण के लिए आपको डाउनस्ट्रीम नौकरी में भी चर को परिभाषित करना होगा। मुझे आशा है कि यह उपयोगी है।
(साथी गोगलर्स के लिए)
यदि आप बिल्ड फ्लो प्लगइन के साथ एक गंभीर पाइपलाइन का निर्माण कर रहे हैं , तो आप इस तरह से DSL के साथ नौकरियों के बीच पैरामीटर पारित कर सकते हैं:
उपलब्ध स्ट्रिंग पैरामीटर "CVS_TAG" का चयन, ताकि इसे अन्य नौकरियों में पास किया जा सके:
build("pipeline_begin", CVS_TAG: params['CVS_TAG'])
parallel (
// will be scheduled in parallel.
{ build("pipeline_static_analysis", CVS_TAG: params['CVS_TAG']) },
{ build("pipeline_nonreg", CVS_TAG: params['CVS_TAG']) }
)
// will be triggered after previous jobs complete
build("pipeline_end", CVS_TAG: params['CVS_TAG'])
उपलब्ध चर / प्रदर्शन दिखाने के लिए संकेत:
// output values
out.println '------------------------------------'
out.println 'Triggered Parameters Map:'
out.println params
out.println '------------------------------------'
out.println 'Build Object Properties:'
build.properties.each { out.println "$it.key -> $it.value" }
out.println '------------------------------------'
बस अपना जवाब निगेल किर्बी के अलावा जोड़ दूं क्योंकि मैं अभी तक टिप्पणी नहीं कर सकता:
गतिशील रूप से बनाए गए पैरामीटर को पास करने के लिए, आप 'Execute Shell' टाइल में चर को निर्यात कर सकते हैं और फिर इसे 'अन्य मापदंडों पर ट्रिगर पैरामीटर निर्मित बिल्ड' => पूर्वनिर्धारित पैरामीटर "=> '' your_VAR- $ your_VAR 'के माध्यम से पास कर सकते हैं। मेरी टीम इस सुविधा का उपयोग npm पैकेज संस्करण को निर्माण कार्य से लेकर परिनियोजन कार्य में पास करने के लिए करती है
अद्यतन: ऊपर केवल जेनकिंस इंजेक्टेड मापदंडों के लिए काम करता है, शेल से बनाया गया पैरामीटर अभी भी उसी विधि का उपयोग करने की आवश्यकता है। जैसे। आपका_VAR = $ {your_VAR}> चर.प्रक्रिया को प्रतिध्वनित करें और उस फ़ाइल को डाउनस्ट्रीम में पास करें
मुझे उसी मुद्दे का सामना करना पड़ा जब मुझे एक डाउनस्ट्रीम रैंडेक जॉब के लिए पोम वर्जन पास करना पड़ा।
मैंने जो किया, वह गुण फ़ाइल के माध्यम से पैरामीटर इंजेक्शन का उपयोग कर रहा था जैसे:
1) शेल के माध्यम से गुण फ़ाइल में गुण बनाना:
कार्य बनाएँ:
जैसे: गुण परिभाषा
2) डाउनस्ट्रीम नौकरी के लिए परिभाषित गुण पास करना: पोस्ट बिल्ड कार्य:
जैसे: गुण भेजना
3) तब डाउनस्ट्रीम Rundeck जॉब में $ POM_VERSION का उपयोग करना संभव था।
/! \ Jenkins संस्करण: 1.636
/! \ किसी कारण से ट्रिगर निर्माण बनाते समय, गुणों को पारित करने के लिए विकल्प 'वर्तमान बिल्ड पैरामीटर' को जोड़ना आवश्यक था।
उत्तरों के माध्यम से पढ़ना, मुझे एक और विकल्प नहीं दिखता है जो मुझे पसंद है इसलिए मैं इसे भी पेश करूंगा। मुझे नौकरियों के मानकीकरण से प्यार है, लेकिन यह हमेशा अच्छा नहीं होता है। यदि आपके पास ऐसी नौकरियां हैं जो पहली नौकरी के सीधे बहाव में नहीं हैं, लेकिन पाइपलाइन से नीचे की ओर हैं, तो आप वास्तव में पाइपलाइन में हर नौकरी को पैरामीटर नहीं बनाना चाहते हैं ताकि सभी तरह से मापदंडों को पारित करने में सक्षम हो सकें। या यदि आपके पास विभिन्न प्रकार के अन्य नौकरियों (विशेष रूप से जो कि एक माता-पिता या मास्टर की नौकरी से बंधे नहीं हैं) द्वारा उपयोग किए जाने वाले मापदंडों की एक बड़ी संख्या है, तो फिर से पैरामीटराइजेशन काम नहीं करता है।
इन मामलों में, मैं मानों को गुण फ़ाइल में आउटपुट करने का पक्ष लेता हूं और फिर यह कहता हूं कि EnvInject प्लगइन का उपयोग करके मुझे जो भी नौकरी चाहिए । यह गतिशील रूप से किया जा सकता है, जो ऊपर दिए गए एक अन्य उत्तर से समस्या को हल करने का एक और तरीका है जहां अभी भी पैरामीटर वाली नौकरियों का उपयोग किया गया था। यह समाधान कई परिदृश्यों में बहुत अच्छा है।
ऐसा करने के लिए आप हडसन ग्रूवी बिल्डर का उपयोग कर सकते हैं ।
पहली नौकरी पाइपलाइन में
पाइपलाइन में दूसरी नौकरी