一尘不染

Jenkins插件安装

jenkins

我已经编写了一个Jenkins Groovy脚本,用于在启动时安装Jenkins插件。Groovy脚本以用于调用我的脚本的Hook命名。例如,init-
Hook内部触发了init.groovy。该挂钩在初始化后触发。

在初始化期间,我无权访问UpdateCenter,也无法安装插件。我还能使用其他哪些詹金斯挂钩?我认为我需要一个启动后的挂钩。

该脚本可在脚本控制台中使用,但不能在后初始化挂钩中使用:

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的钩子。


阅读 249

收藏
2020-07-25

共1个答案

一尘不染

通过询问jenkins-irc渠道解决了这一问题。我需要初始化UpdateCenter的更新站点列表。结果可以在这里找到: blacklabelops /
jenkins

2020-07-25