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.
Carichi di ringraziamenti! –
Penso che la riga n. 14 (uc.updateAllSites()) sia ridondante nell'esempio. –
Inoltre, instance.doSafeRestart() interrompe l'installazione dei plugin. –