我编写了一个 Jenkins Groovy 脚本,用于在启动时安装 Jenkins 插件。 Groovy 脚本以用于调用我的脚本的 Hook 命名。例如。 init.groovy 在 init-Hook 内触发。该 Hook 在初始化后触发。
在初始化期间,我无法访问更新中心,也无法安装插件。我还可以使用哪些其他 Jenkins Hook?在我看来,我需要一个启动后 Hook。
该脚本在脚本控制台中工作,但在初始化后挂钩中不起作用:
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()
我需要一个系统启动且 uc.getPlugin(it) 不返回 null 的钩子。
通过询问 jenkins-irc 频道解决了这个问题。我需要初始化更新中心的更新站点列表。结果可以在这里找到:blacklabelops/詹金斯 https://github.com/blacklabelops/jenkins/blob/master/imagescripts/initplugins.sh#L22
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)