scm-sync-configuration-plugin icon indicating copy to clipboard operation
scm-sync-configuration-plugin copied to clipboard

Overwrite main config file while reload from scm

Open arunssasidhar opened this issue 8 years ago • 3 comments

Hi,

I am trying to automate reload Jenkins config from scm (git) using this plugin. I use a groovy script during Jenkins startup to download the latest config from scm. I use following actions to re-load the config

I am using groovy script from this gist - https://gist.github.com/gshively11/13dcdd61b78b7910923e#file-gistfile1-txt

....................trimmed............... .............. scmSyncPlugin.configure(mock, jsonObj) scmSyncPlugin.business.synchronizeAllConfigs(ScmSyncConfigurationPlugin.AVAILABLE_STRATEGIES) instance.doReload() instance.save()

It is working as expected but it overwrite the main config.xml and reset all my settings.

Any help would highly appreciated.

Thanks, Arun S

arunssasidhar avatar Jul 24 '17 19:07 arunssasidhar

@arunssasidhar I am facing the same issue.. Did you manage to resolve this issue ?

Deepakkothandan avatar Aug 31 '17 10:08 Deepakkothandan

not yet.

arunssasidhar avatar Aug 31 '17 10:08 arunssasidhar

@arunssasidhar This is how I managed to do this.

The problem: SCM plugin overrides Jenkins start method, and the groovy script is executed only after the plugin initialises, so the config file is overwritten already.

The solution: (provisioning with ansible)

  1. Install jenkins
  2. two separate groovy files, one for plugin installation and one for scm config reload.
  3. First, place the plugin installation script in the init.groovy.d and restart jenkins
  4. Wait for jenkins to be online again
  5. Now clone the actual config repo somewhere (may be in /tmp)
  6. Replace /var/lib/jenkins/config.xml with the config.xml from the cloned repository.
  7. Place the scm-configuration xml in jenkins
  8. Place the groovy script for scm config reload in init.groovy.d
  9. Restart jenkins

Deepakkothandan avatar Sep 21 '17 08:09 Deepakkothandan