2016-07-22 12 views
7

से पाइपलाइन नाम और विवरण सेट करें मैं कोड के रूप में जेनकींस पाइपलाइन का एक पॉक करने की कोशिश कर रहा हूं। मैं जिथूब संगठनों को स्कैन करने और प्रति शाखा नौकरियां बनाने के लिए गितब संगठन फ़ोल्डर प्लगइन का उपयोग कर रहा हूं। क्या जेनकिन्सफाइल से प्राप्त पाइपलाइन नौकरियों के नामों को स्पष्ट रूप से परिभाषित करने का कोई तरीका है? मैं नौकरियों के लिए कुछ विवरण भी जोड़ना चाहता हूं।जेनकिन्सफाइल

+0

क्या आप जेनकिन्सफाइल से स्निपेट दिखा सकते हैं? – Jayan

+0

दूसरों के लिए निर्माण विवरण के बजाय नौकरी/परियोजना विवरण बदलने की तलाश में, https://stackoverflow.com/questions/39200948/jenkins-multibranch-change-job-description-from-groovy – Mark

उत्तर

11

आपको नीचे currentBuild का उपयोग करने की आवश्यकता है। node हिस्सा महत्वपूर्ण

node { 
    currentBuild.displayName = "$yournamevariable-$another" 
    currentBuild.description = "$yourdescriptionvariable-$another" 
} 

संपादित है: ऊपर एक का नाम बदलता है का निर्माण जहां मूल प्रश्न के रूप में नौकरियों का नाम बदलने के बारे में है। पाइप लाइन में के बाद स्क्रिप्ट कि क्या करेंगे

item = Jenkins.instance.getItemByFullName("originalJobName") 
item.setDescription("This description was changed by script") 
item.save() 
item.renameTo("newJobName") 
+1

हाय जयन, धन्यवाद के लिए धन्यवाद जवाब दे दो। मैंने पहले से ही मौजूदा Build.description विकल्प की कोशिश की है। यह बिल्ड इतिहास अनुभाग में बिल्ड नंबर के तहत एक टैग के रूप में दिखाई दिया। लेकिन मैं इन्हें इस तरह से सेट करना चाहता हूं कि उन्हें नौकरियों के लिए "कॉन्फ़िगरेशन देखें" विकल्प के तहत दिखाया गया है। क्या यह करने योग्य है? – HarshaB

+0

प्लगइन विकल्पों में कोई रास्ता नहीं देखा। उपरोक्त उत्तर का नाम बदलने के लिए अपडेट किया गया एपीआई (जिसे आपने पहले ही देखा होगा) – Jayan

+0

आपको बहुत धन्यवाद जयन। उसने जादू की तरह काम किया। वास्तव में मैं क्या चाहता था। मुझे यह सुनिश्चित करना था कि मैं उन स्क्रिप्ट को जेनकींस-> इन-प्रोसेस स्क्रिप्ट स्वीकृति के तहत अनुमोदित करके चलाने की अनुमति देता हूं। क्या यहां अनुमोदन के तहत मैन्युअल रूप से नए वर्गों को जोड़ने का कोई तरीका है? जिस तरह से मैंने इसे अभी किया था, उस समय मैंने जो भी कक्षाएं इस्तेमाल की थी, उसके लिए एक विकल्प में विकल्प का चयन करना था। यह मुझे किसी भी वर्ग को मैन्युअल रूप से टाइप करने और अनुमोदित करने की अनुमति नहीं देता है। – HarshaB

2

(इस उपयुक्त अनुमतियों की आवश्यकता है) मैं स्वीकार किए जाते हैं जवाब से कोड का टुकड़ा इस्तेमाल किया Jenkinsfile में मेरी जेनकींस पाइपलाइन वर्णन करने की कोशिश। मुझे कोड स्निपेट को @NonCPS एनोटेशन के साथ फ़ंक्शन में लपेटना था और आइटम चर के लिए डीफ़ का उपयोग करना था। मैंने जेनकिन्सफाइल की जड़ में कोड स्निपेट रखा है, नोड सेक्शन में नहीं।

@NonCPS 
def setDescription() { 
    def item = Jenkins.instance.getItemByFullName(env.JOB_NAME) 
    item.setDescription("Some description.") 
    item.save() 
} 

setDescription() 
0

मैं इस पर पार्टी के लिए देर हो रही है, लेकिन इस सवाल का मुझे #jenkins में चैट के लिए मजबूर किया, जहां मैं आज मेरा दिन के सबसे बिताया। मैं उस स्थिति से @ tang^को धन्यवाद देना चाहता हूं ताकि मेरी स्थिति के लिए इसे एक शानदार तरीके से हल किया जा सके।

एक बहु शाखा कथात्मक पाइप लाइन में नौकरी का विवरण और एक बच्चे के लिए नौकरी प्रदर्शन नाम सेट करने के लिए उपयोग करने के लिए निम्न चरण एक चरण में ब्लॉक:

steps { 
    script { 
     if(currentBuild.rawBuild.project.displayName != 'jobName') { 
      currentBuild.rawBuild.project.description = 'NEW JOB DESCRIPTION' 
      currentBuild.rawBuild.project.setDisplayName('NEW JOB DISPLAY NAME') 
     } 
     else { 
      echo 'Name change not required' 
     } 
    } 
} 

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

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