How to reload configuration from disk programatically

2 minute readKnowledge base

Issue

  • I am performing some actions on CloudBees CI via a Groovy script and would need to reload the instance configuration from disk programatically.

  • I am performing some actions on a job in CloudBees CI via a Groovy script and would need to reload the job configuration from disk programatically.

  • I am looking for an alternative to restarting the instance to pickup my changes on disk

  • I need to reload the instance configuration from disk from the command line.

  • I need to reload a particular job configuration from disk from the command line.

Resolution

Instance configuration

You can reload your CloudBees CI configuration from disk programmatically by either:

  • using the method reload() applied to your Jenkins instance from a Groovy script, i.e.:

jenkins.model.Jenkins.getInstance().reload()
  • running the following command from a console in a directory where the jenkins-cli has been downloaded:

java -jar jenkins-cli.jar -s <your-jenkins-url> --auth "<your-admin-username>:<your-admin-api-token>" reload
  • curling <your-jenkins-url>/reload. Please note, that the latter will need to be done as a POST authenticated action, and that the authentication will need to be performed via an API token, i.e.:

curl -X POST http://localhost:9090/reload -u "<your-admin-username>:<your-admin-api-token>"

Before reloading your instance’s configuration from disk, read What does Reload Configuration from Disk do? to understand how it might impact your on-going activity at the moment of the reload.

Job configuration

You can reload your job configuration from disk programmatically by either:

  • using the method doDoReload() applied to your job item. For instance, for a custom update center:

import com.cloudbees.plugins.updatecenter.UpdateCenter UpdateCenter myUC = jenkins.model.Jenkins.instance.getItemByFullName("<your-uc-name>", UpdateCenter.class) myUC.doDoReload()
  • running the following command from a console in a directory where the jenkins-cli has been downloaded:

java -jar jenkins-cli.jar -s <your-jenkins-url> --auth "<your-admin-username>:<your-admin-api-token>" doReload```
  • curling <your-jenkins-url>/job/<your-job-name>/doReload. Please note, that the latter will need to be done as a POST authenticated action, and that the authentication will need to be performed via an API token, i.e.:

curl -X POST <your-jenkins-url>/job/<your-job-name>/doReload -u "<your-admin-username>:<your-admin-api-token>"

Tested product/plugin versions

CloudBees Jenkins Platform - controller 2.346.2.3

This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.