How can I update jenkins plugins from the terminal?

后端 未结 6 1900
庸人自扰
庸人自扰 2021-01-30 11:07

I am trying to create a bash script for setting up Jenkins. Is there any way to update a plugin list from the Jenkins terminal?

At first setup there is no plugin availab

6条回答
  •  无人及你
    2021-01-30 12:00

    FYI -- some plugins (mercurial in particular) don't install correctly from the command line unless you use their short name. I think this has to do with triggers in the jenkins package info data. You can simulate jenkins' own package update by visiting 127.0.0.1:8080/pluginManager/checkUpdates in a javascript-capable browser.

    Or if you're feeling masochistic you can run this python code:

    import urllib2,requests
    
    UPDATES_URL = 'https://updates.jenkins-ci.org/update-center.json?id=default&version=1.509.4'
    PREFIX = 'http://127.0.0.1:8080'
    
    def update_plugins():
        "look at the source for /pluginManager/checkUpdates and downloadManager in /static//scripts/hudson-behavior.js"
        raw = urllib2.urlopen(self.UPDATES_URL).read()
        jsontext = raw.split('\n')[1] # ugh, JSONP
        json.loads(jsontext) # i.e. error if not parseable
        print 'received updates json'
    
        # post
        postback = PREFIX+'/updateCenter/byId/default/postBack'
        reply = requests.post(postback,data=jsontext)
        if not reply.ok:
            raise RuntimeError(("updates upload not ok",reply.text))
        print 'applied updates json'
    

    And once you've run this, you should be able to run jenkins-cli -s http://127.0.0.1:8080 install-plugin mercurial -deploy.

提交回复
热议问题