-
-
Save basmussen/8182784 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
host=http://localhost:8080 | |
url=/pluginManager/installNecessaryPlugins | |
# git plugin https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin | |
curl -X POST -d '<jenkins><install plugin="[email protected]" /></jenkins>' --header 'Content-Type: text/xml' $host$url | |
# artifactory plugin https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin | |
curl -X POST -d '<jenkins><install plugin="[email protected]" /></jenkins>' --header 'Content-Type: text/xml' $host$url | |
# wait 20 sec | |
sleep 20 | |
# jenkins safe restart | |
curl -X POST $host/safeRestart |
@Amor64 there is this note and it is also mentioned in the bug filed above.
The Update Center only allows the installation of the most recently released version of a plugin. In cases where an older release of the plugin is desired, a Jenkins administrator can download an older .hpi archive and manually install that on the Jenkins master.
Via the Jenkins CLI this means you need to pass a full URL to the older plugin version, whether that is from the Jenkins Update Center (which keeps the older versions but doesn't index them) or from your own artifact store like Artifactory or Nexus.
So I kept trying this with Jenkins 2.145 but just getting redirected to the updateCenter page and never actually triggering a plugin installation. After much looking I found a comment where somebody mentioned you don't need the XML data and can just pass a form submission of -F "plugin.$PLUGIN.default=on"
to $JENKINS_HOST/pluginManager/install
and it will trigger the installation. I haven't tested passing multiple plugins at once yet, but the $PLUGIN
bit is simply the 'short name' of the plugin which is what is most often used anyways. Because it uses updateCenter you probably can't pass a specific version (updateCenter always pulls latest), but I haven't fully experimented with all the options.
Does anyone successfully able to install jenkins plugin with specific version ?