2016-11-23 8 views
5

Jenkinsfile में मैं Jenkins Dynamic Plugin का उपयोग कैसे कर सकता हूं?जेनकिन्सफाइल में गतिशील पैरामीटर?

  • जेनकींस काम
  • चुने जाने पर, एक स्क्रिप्ट है कि एक सूची है कि Dynamic Choice Parameters इस्तेमाल किया जा सकता भरता से भर जाता है और में Build with Parameters विकल्प को सक्षम:

    क्या मैं देख रहा हूँ एक Jenkinsfile स्निपेट को है उपयोगकर्ता एक ड्रॉप डाउन सूची देखेंगे।

जब कोशिश कर रहा:

  1. Pipeline syntax जेनकींस संपादक
  2. Sample step
  3. This project is parameterized
  4. चयन के रूप में properties: Set job properties चयन का उपयोग करना Dynamic Choice Parameter
  5. Name के लिए मान दर्ज करें में, Choice Script, Remote Script आदि
  6. Generate Pipeline Script

मैं निम्नलिखित टेम्पलेट मिलती है:

properties([ 
    parameters([ 
     <object of type com.seitenbau.jenkins.plugins.dynamicparameter.ChoiceParameterDefinition> 
    ]), 
    pipelineTriggers([]) 
]) 

अर्थात उत्पन्न पाइपलाइन स्क्रिप्ट डेटा है कि मैं ऊपर चरण 5. में प्रवेश किया है शामिल नहीं है। मैं parameters कैसे संशोधित कर सकता हूं ताकि पैरामीटर नाम, विकल्प इत्यादि उपयोगकर्ता को दिखाई दे सकें?


जेनकींस संस्करण: 2.19.3 गतिशील पैरामीटर प्लगइन संस्करण: 0.2.0

उत्तर

3

वहाँ जेनकींस गतिशील प्लगइन के लिए अब और कोई जरूरत नहीं अब और है। बस सामान्य पसंद या स्ट्रिंग पैरामीटर का उपयोग करें और groovy कोड द्वारा अद्यतन मान (ओं) है।

#!/bin/groovy 

def envs = loadEnvs(); 

properties([ 
    parameters([ 
     choice(choices: envs, description: 'Please select an environment', name: 'Env') 
    ]) 
]) 

node { 
    try { 
     stage('Preparation'){ 
... 

यदि आप पसंद पैरामीटर का उपयोग करते हैं तो आपको पता होना चाहिए कि आपको एक स्ट्रिंग प्रदान करनी होगी जहां मान एक नई रेखा से अलग हो जाएं।

उदाहरण के लिए:

"a\nb\nc" 

तुम सच में प्लगइन की जरूरत है, तो इस समस्या के JENKINS-42149 पर वोट देते हैं।

+0

जेनकींस के किस संस्करण में? मैं 2.3 चला रहा हूं और " –

+0

चरणों में पाया गया कोई भी डीएसएल विधि 'पैरामीटर त्रुटि नहीं है 2.32.3 और यह अब काम कर रहा है। –

+0

यह काम करता है, लेकिन यह नया पैरामीटर बनाता है और बिल्ड पैरामीटर में मानों को बनाए रखता है, यदि वास्तविक मान (उदाहरण के लिए मैवेन संस्करणों की सूची) बदल गया है- पैरामीटर मान अपडेट नहीं किए गए हैं, ऐसा लगता है कि loadEnvs() हर बार निष्पादित नहीं होता है या इस तरह smth –

संबंधित मुद्दे