-
-
Save rowan-m/1026918 to your computer and use it in GitHub Desktop.
$ java -jar jenkins-cli.jar -s http://localhost:9000 install-plugin findbugs | |
findbugs is neither a valid file, URL, nor a plugin artifact name in the update center | |
No update center data is retrieved yet from: http://updates.jenkins-ci.org/update-center.json | |
findbugs looks like a short plugin name. Did you mean 'null'? | |
# Specifying a full URL works! | |
$ java -jar jenkins-cli.jar -s http://localhost:9020 install-plugin http://updates.jenkins-ci.org/download/plugins/AdaptivePlugin/0.1/AdaptivePlugin.hpi | |
# Get the update center ourself | |
$ wget -O default.js http://updates.jenkins-ci.org/update-center.json | |
# remove first and last line javascript wrapper | |
sed '1d;$d' default.js > default.json | |
# Now push it to the update URL | |
curl -X POST -H "Accept: application/json" -d @default.json http://localhost:9020/updateCenter/byId/default/postBack --verbose | |
* About to connect() to localhost port 9020 (#0) | |
* Trying ::1... connected | |
* Connected to localhost (::1) port 9020 (#0) | |
> POST /updateCenter/byId/default/postBack HTTP/1.1 | |
> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3 | |
> Host: localhost:9020 | |
> Accept: application/json | |
> Content-Length: 253822 | |
> Content-Type: application/x-www-form-urlencoded | |
> Expect: 100-continue | |
> | |
* Done waiting for 100-continue | |
< HTTP/1.1 200 OK | |
< Server: Winstone Servlet Engine v0.9.10 | |
< Content-Type: text/plain;charset=UTF-8 | |
< Connection: Close | |
< Date: Fri, 01 Apr 2011 13:03:41 GMT | |
< X-Powered-By: Servlet/2.5 (Winstone/0.9.10) | |
# Now it finds the plugin by name | |
$ java -jar jenkins-cli.jar -s http://localhost:9020 install-plugin findbugs | |
Installing findbugs from update center | |
$ java -jar jenkins-cli.jar -s http://localhost:9020 safe-restart | |
hudson.lifecycle.RestartNotSupportedException: Restart is not supported on Mac OS X | |
$ java -jar jenkins-cli.jar -s http://localhost:9020 reload-configuration |
Thank you sooooooooooooo much. The one line command is just perfect.
Well done chaps - great fix. Especially ianformanek for the oneliner.
Awesome guys, thanks for this!
Thanks for the nice workaround.
This was really helpful, thank you!, I've been working on an ansible role for Jenkins and this was the missing piece: https://github.com/clarete/ansible-jenkins
I've noticed, that this will not change the URL that is visible in the plugin settings page in the browser. Any way to change this?
Attempting this now, I get an exception-based 404 from the Winstone servlet engine - is this a post size issue? Looks like copying the file into place may be the way to go.
It's really god damn perfect!!!
I'm using curl -L http://updates.jenkins-ci.org/update-center.json | sed '1d;$d' | curl -u username:password X POST -H 'Accept: application/json' -d @- http://localhost:8080/updateCenter/byId/default/postBack
curl -L http://updates.jenkins-ci.org/update-center.json | sed '1d;$d' | curl -u username:password X POST -H 'Accept: application/json' -d @- http://localhost:8080/updateCenter/byId/default/postBack
Why is this necessary? http://updates.jenkins-ci.org/update-center.json is the default update site that comes ofb.
@marslo since you replied most recently. Any insight would be appreciated
No need to do the sed
if you get the actual json file from: https://updates.jenkins.io/current/update-center.actual.json
If you go to https://updates.jenkins.io/, there are actually some helpful instructions on how to get the file and get it for your particular installed version of jenkins. That's important because new versions of plugins can be incompatible with the stable versions of jenkins.
Here a chef recipe to automate this: