jenkins - जेनकींस/हडसन में नौकरी का नाम बदलना




hudson (5)

  1. नए नाम के साथ एक नया काम बनाएं, मौजूदा नौकरी copy from का एक विकल्प होगा।
  2. उस नौकरी copy from जिसका आप नाम बदलना चाहते हैं।
  3. मूल नौकरी हटाएं।

अब आपके पास एक अलग नाम के साथ एक समान नौकरी है।

मैंने एक हडसन / जेनकींस नौकरी का नाम बदलने की कोशिश की है। हालांकि यह नाम बदलने में विफल रहा।

क्या कोई रास्ता है इसलिए मैं नौकरी का नाम बदल सकता हूं?


[जॉब जेनरेटर] (जॉब जेनरेटर प्लगइन) (फैक्ट्री) के भीतर ग्रोवी स्क्रिप्ट का उपयोग करके कई नौकरियों का नाम बदलने के लिए जॉब Job.previousNames() फ़ंक्शन का उपयोग करें।

निम्नलिखित उदाहरण नौकरियों का नाम बदलता है ci.*_2 से ci.* (यह पिछला _2 हटा देता है)।

[
    [env: '01', hostname: 'host01.intranet'],
    [env: '02', hostname: 'host02.intranet'],
    [env: '03', hostname: 'host03.intranet'],
    [env: '04', hostname: 'host04.intranet'],
    [env: '05', hostname: 'host05.intranet'],
    [env: '06', hostname: 'host06.intranet'],
    [env: '07', hostname: 'host07.intranet'],
    [env: '08', hostname: 'host08.intranet'],
    [env: '09', hostname: 'host09.intranet'],
    [env: '10', hostname: 'host10.intranet'],
    [env: '11', hostname: 'host11.intranet'],
    [env: '12', hostname: 'host12.intranet'],
    [env: '13', hostname: 'host13.intranet'],
    [env: '14', hostname: 'host14.intranet'],
    [env: '15', hostname: 'host15.intranet'],
    [env: '16', hostname: 'host16.intranet'],
    [env: '17', hostname: 'host17.intranet'],
    [env: '18', hostname: 'host18.intranet'],
    [env: '19', hostname: 'host19.intranet'],
    [env: '20', hostname: 'host20.intranet'],
].each { Map config ->
    job("ci.${config.env}") {
        previousNames("ci.${config.env}_2")
        description("Continuous Integration on host ${config.env}")
        logRotator {
            numToKeep(5)
            daysToKeep(45)
        }
        label('build')
        wrappers {
            colorizeOutput('gnome-terminal')
        }
    }
}

आवश्यकता के आधार पर मैं आमतौर पर बीच चुनता हूं:

नौकरी > कॉन्फ़िगर करें - प्रोजेक्ट नाम प्रॉपर्टी संशोधित करें - उन्नत प्रोजेक्ट विकल्प , उन्नत हिट करें ... , प्रदर्शन नाम के लिए सेट मान

फिर नौकरी बचाओ । फ़ाइल सिस्टम स्तर पर नाम बदलने की जरूरत नहीं है।


नौकरी का नाम बदलने का सामान्य तरीका:

स्क्रीन कॉन्फ़िगर करें पर जाएं और प्रोजेक्ट नाम फ़ील्ड को शीर्ष पर संपादित करें। फिर हां पर क्लिक करके सहेजें और पुष्टि करें पर क्लिक करें( सहेजें के बगल में लागू करें बटन पर क्लिक करें, जो आपको एक त्रुटि संदेश देगा: JENKINS-17474 )

प्रदर्शन नाम बदलने से नौकरी का नाम बदल नहीं जाएगा, यह केवल यह दिखाएगा कि यह कैसे प्रदर्शित किया जाएगा। यह अभी भी खोज बॉक्स के माध्यम से इसके मूल नाम के तहत पाया जाएगा और यह यूआरएल में भी दिखाई देगा।

फाइल सिस्टम स्तर पर निर्देशिकाओं का नाम बदलना वास्तव में आवश्यक नहीं होना चाहिए।


मैं मार्क की लिपि काम नहीं कर सकता, इसलिए नीचे दिखाए गए सभी नौकरियों की स्क्रिप्ट को अक्षम करने के आधार पर एक लिखें। यह "Findur.OpenComponent" के साथ "Findur.OpenComponents" के साथ किसी भी प्रोजेक्ट का नाम बदलना है।

import hudson.model.*

renameChildren(Hudson.instance.items)

def renameChildren(items) {
  for (item in items) {
    if (item.class.canonicalName != 'com.cloudbees.hudson.plugins.folder.Folder') {     
      if (( m = item.name =~ /^(Findur.OpenComponent)(\..*)$/)){
        println(item.name)
        println m.group(1) + " " + m.group(2)
        newname = m[0][1] + 's' + m.group(2)
        item.renameTo(newname)
      }

    } else {
        renameChildren(((com.cloudbees.hudson.plugins.folder.Folder) item).getItems())
    }
  }
}




hudson