Reloading a single job in Jenkins

Here is how you reload a single job in Jenkins without restarting or reloading the complete configuration, with the use of Groovy. You can easily modify the script to reload two or all Jenkins jobs without restarting.

This can be helpful for all those, luckily, rare occasions where Jenkins decides to forget the configuration or at least parts of the configuration for a given job(s)

Jenkins allows running the script in the UI or via the CLI.

UI

To use the UI copy the following script in your Jenkins Script page, for instance, http://www.mydomain.com/jenkins/script

import java.io.InputStream;
import java.io.FileInputStream
import java.io.File;
import javax.xml.transform.stream.StreamSource

def hudson = hudson.model.Hudson.instance;

//to get a single job
//def job = hudson.model.Hudson.instance.getItem('my-job');

for(job in hudson.model.Hudson.instance.items) {   

    if (job.name == "my-job") {

        def configXMLFile = job.getConfigFile();
        def file = configXMLFile.getFile();

        InputStream is = new FileInputStream(file);

        job.updateByXml(new StreamSource(is));
        job.save();         
    }      
} 

CLI

to Run the script via the CLI copy the script above into a file called reload-job.groovy

    jenkins-cli.jar 

160 Words

2018-09-08 17:00 +0200

comments powered by Disqus