2015-07-16 20 views
6

Ho scritto uno script Jenkins Groovy per installare il plug-in Jenkins all'avvio. Gli script Groovy prendono il nome dal Hook che viene usato per invocare i miei script. Per esempio. init.groovy viene attivato all'interno del hook di init. Questo hook è attivato in post-inizializzazione.Installazione plug-in Jenkins

Durante l'inizializzazione non ho accesso a UpdateCenter e non posso installare i plug-in. Quali altri Jenkins Hooks posso usare? A mio parere ho bisogno di un hook post-startup.

Questo script funziona in consolle sceneggiatura, ma non all'interno gancio post-inizializzazione:

import jenkins.model.* 

def pluginParameter="gitlab-plugin hipchat swarm" 
def plugins = pluginParameter.split() 
println(plugins) 
def instance = Jenkins.getInstance() 
def pm = instance.getPluginManager() 
def uc = instance.getUpdateCenter() 
def installed = false 

plugins.each { 
    if (!pm.getPlugin(it)) { 
    def plugin = uc.getPlugin(it) 
    if (plugin) { 
     println("Installing " + it) 
     plugin.deploy() 
     installed = true 
    } 
    } 
} 

instance.save() 
if (installed) 
instance.doSafeRestart() 

Ho bisogno di un gancio a cui viene avviato il sistema e uc.getPlugin (esso) non restituisce nulla.

risposta

6

Risolto questo chiedendo al canale jenkins-irc. Avevo bisogno di inizializzare l'elenco dei siti di aggiornamento di UpdateCenter. Il risultato può essere trovato qui: blacklabelops/jenkins

+0

Carichi di ringraziamenti! –

+0

Penso che la riga n. 14 (uc.updateAllSites()) sia ridondante nell'esempio. –

+0

Inoltre, instance.doSafeRestart() interrompe l'installazione dei plugin. –

Problemi correlati