जेनकींस बदलने से नंबर बनता है


142

क्या काम पूरा होने के बाद ईमेल के माध्यम से भेजे गए बिल्ड नंबर को बदलने का कोई तरीका है? समस्या यह है कि उत्पाद बिल्ड जेनकिन्स द्वारा नहीं किए जा रहे हैं, इसलिए हम बिल्ड नंबर (यानी एक पाठ फ़ाइल से) प्राप्त करने में सक्षम होना चाहते हैं और इसे मिलान करने के लिए जेनकींस में बिल्ड नंबर अपडेट करें। मैंने बिल्ड नंबर सेट करने की कोशिश की है:

set BUILD_NUMBER=45

लेकिन ईमेल अभी भी बिल्ड नंबर दिखा रहा है जो जेनकिन्स ने मूल रूप से सेट किया था।

जवाबों:


259

यदि आपके पास स्क्रिप्ट कंसोल (Jenkins -> स्क्रिप्ट कंसोल प्रबंधित करें) तक पहुंच है, तो आप यह कर सकते हैं:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

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

5
यदि आप GitHub प्लगइन का उपयोग कर रहे हैं, "YourJobName"है "organization/repository/branchname"
Ruud

15
काम करता है। भवन का उपयोग किए बिना मूल्य का सत्यापन किया जा सकता है:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
डैनियल एल्डर

7
मैं पुष्टि कर सकता हूं कि यह मल्टीब्रांच-पाइपलाइन के लिए भी काम कर रहा है। "जॉबनाम" को शाखा पृष्ठ के शीर्ष पर सूचीबद्ध किया गया है: पूर्ण परियोजना का नाम: PipelineName/BranchNameतो यह होगाJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
मार्कस


37

प्लगइन के साथ किया जा सकता है: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

अधिक जानकारी: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

अगर आपको प्लगइन पसंद नहीं है:

यदि आप नेक्स्टबल्डनंबर फ़ाइल के माध्यम से बिल्ड नंबर बदलना चाहते हैं तो आपको "जेनकिन्स प्रबंधित करें" पृष्ठ से "डिस्क से पुनः लोड कॉन्फ़िगरेशन" करना चाहिए।


2
प्लगइन का उपयोग करने की कोई जरूरत नहीं है।
david.perez

1
धन्यवाद, आप मेरा दिन बचाएं।
युकियो फुकुजावा 20

29

नौकरी कार्यक्षेत्र फ़ोल्डर के तहत, जैसे:

C:\Program Files (x86)\Jenkins\jobs\job_name

नाम की एक फाइल है nextBuildNumber

फ़ाइल में बिल्ड नंबर सेट करना और डिस्क से कॉन्फ़िगरेशन को फिर से लोड करना (प्रबंधित जेनकिन्स मेनू) आपको अगले निर्माण को फ़ाइल से मूल्य के रूप में शुरू करने के लिए मजबूर कर देगा जैसे कि BUILD_NUMBER।


9
अगली बारबिल्डनंबर फ़ाइल को बदलने के बाद क्या आपने डिस्क से कॉन्फ़िगरेशन पुनः लोड करें (जेनकिंस मेनू प्रबंधित करें)?
वेजेनकोव

नहीं! मुझे लगा कि यह अपने आप हो गया।
hfossli

इसने मेरे लिए पूरी तरह से काम किया। इससे प्रभावित होने से पहले आपको सर्वर को रिबूट करना होगा।
हॉकआई ६४

यदि आपके पास कई उपयोगकर्ता पाइपलाइन चला रहे हैं तो सर्वर को रिबूट करना एक दर्द है। इस तरह के समाधान से बेहतर बचें
मॉर्गन गीक

8

यदि आपके पास फ़ॉरवर्ड स्लैश सहित शाखा का नाम है ( उदाहरण के लिए git flow का उपयोग करके ), तो आपको फ़ॉरवर्ड स्लैश को उसके यूनिकोड वर्ण % 2F के साथ शाखा के नाम से बदलना होगा ।

यहाँ पाइपलाइन माई-पाइपलाइन-नाम और शाखा रिलीज़ / मेरी-रिलीज़-शाखा-नाम के लिए एक उदाहरण है

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

मैं निम्नलिखित कमांड को चलाकर इस बारे में पता लगा सकता था जो आपकी पाइपलाइन के लिए विभिन्न नौकरियों (शाखाओं) को सूचीबद्ध करेगा

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

आशा करता हूँ की ये काम करेगा।


5

शायद इन प्लगइन्स का एक संयोजन काम आ सकता है:


बहुत बहुत धन्यवाद - मैं एक प्लगइन्स का उपयोग करने में सक्षम था।
erman8

1

आप जेनकिंस सर्वर पर फ़ाइल $ {JENKINS_HOME} / नौकरियों / job_name / nextBuildNumber को अपडेट करके बिल्ड नंबर बदल सकते हैं।

आप CLI या UI का उपयोग करके बिल्ड नंबर बदलने के लिए प्लगइन नेक्स्ट बिल्ड नंबर प्लगइन भी स्थापित कर सकते हैं


ध्यान दें कि अगली बार बिल्डबेल नम्बर फाइल में बिल्ड नंबर बदलना अपने आप में पर्याप्त नहीं है, "डिस्क से रीलोड कॉन्फ़िगरेशन" "जेनकिन्स प्रबंधित करें" मेनू को निष्पादित करना आवश्यक है।
बाजीगर

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.