Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overwrite main config file while reload from scm #57

Open
arunssasidhar opened this issue Jul 24, 2017 · 3 comments
Open

Overwrite main config file while reload from scm #57

arunssasidhar opened this issue Jul 24, 2017 · 3 comments

Comments

@arunssasidhar
Copy link

arunssasidhar commented Jul 24, 2017

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

@Deepakkothandan
Copy link

Deepakkothandan commented Aug 31, 2017

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

@arunssasidhar
Copy link
Author

not yet.

@Deepakkothandan
Copy link

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants