जेनकींस डिक्लेरेटिव पाइपलाइन में हम बिल्ड पैरामीटर्स को परिभाषित कर सकते हैं जैसे

pipeline {
    …
    parameters {
        string(name: 'PARAMETER', defaultValue: 'INITIAL_DEFAULT')
        choice(name: 'CHOICE', choices: ['THIS', 'THAT'])
    }
    …
}

हालांकि कार्य की पैरामीटर परिभाषाएं केवल तभी अपडेट की जाती हैं जब कार्य बाद चलता है बिल्ड पैरामीटर संवाद पहले ही दिखाया जा चुका है। यही है, जब मैं INITIAL_DEFAULT को किसी और चीज़ में बदलता हूं, तो अगला बिल्ड अभी भी INITIAL_DEFAULT पर डिफ़ॉल्ट होगा और उसके बाद केवल एक ही नए मान का उपयोग करेगा।

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

तो क्या वर्तमान मानों की गणना करने के लिए पैरामीटर संवाद से पहले निष्पादित किए जाने वाले कार्यों या अभिव्यक्तियों को परिभाषित करने का कोई तरीका है (फाइलों से, वैश्विक सेटिंग्स में चर या किसी अन्य उपयुक्त बाहरी कॉन्फ़िगरेशन से)?

मुझे याद है कि इसके लिए अतीत में फ्री-स्टाइल नौकरियों के साथ कुछ प्लगइन्स का उपयोग किया गया था, लेकिन प्लगइन रिपोजिटरी को खोजने पर मुझे कोई भी ऐसा नहीं मिला जो पाइपलाइन के साथ इसका उपयोग करने का उल्लेख करे।

मुझे इस बात की बहुत अधिक परवाह नहीं है कि पैरामीटर जोड़ने और हटाने पर भी यही समस्या लागू होती है, क्योंकि ऐसा बहुत कम होता है। लेकिन हमारे पास कुछ पैरामीटर हैं जहां डिफ़ॉल्ट अक्सर बदलता है और हमें अद्यतन मूल्य लेने के लिए अगली रात की आवश्यकता होती है।

0
Jan Hudec 26 मार्च 2020, 20:29

1 उत्तर

सबसे बढ़िया उत्तर

यह पता चला है कि extended-choice-parameter पाइपलाइन के साथ काम करता है, और कॉन्फ़िगरेशन निर्देश जनरेटर द्वारा उत्पन्न किया जा सकता है। ऐसा कुछ दिखता है

extendedChoice(
    name: 'PARAMETER',
    type: 'PT_TEXTBOX',
    defaultPropertyFile: '/var/lib/jenkins/something.properties',
    defaultPropertyKey: 'parameter'
)

(जनरेटर में और भी कई विकल्प उपलब्ध हैं)

वैश्विक पर्यावरण चर प्राप्त करने के लिए ग्रूवी स्क्रिप्ट यह अन्य उत्तर से प्राप्त की जा सकती है।

1
Jan Hudec 26 मार्च 2020, 17:59