Jenkins 在加载插件之前执行 Groovy 脚本

Jenkins Execute Groovy Script Before Loading Plugins

我需要在加载插件之前更改一些插件配置文件。我查看了 init.groovy.d,但似乎在加载插件后该目录中的 运行 Groovy 脚本,因此需要重新启动才能应用。有没有办法在 Jenkins 加载插件之前 运行 Groovy 脚本?

您所要求的是没有必要的。通常,在添加插件时,它们是未配置的。 Jenkins 启动,加载插件,然后你可以通过 init.groovy, CasC 等进行配置,类似于你通过 GUI 添加(添加、重启、配置)。

我们开始 w/war 文件,包装器,init.groovy.d,加上 docker install_plugins.sh 的变体。除了 war、包装器和 wrapper.conf、install_plugins.sh 和插件列表,以及所有初始化脚本都在我们下拉的 git 存储库中控制。 将插件转储到插件目录,然后启动 jenkins.sh

init.groovy runs automatically 初始化后配置所有系统、全局、工具和插件值,以及凭据值,还有 creating/configuring 个节点。

注意:每个部分或插件最好使用 1 个初始化脚本,因为任何初始化脚本中的失败都会悄悄失败,有效地跳过脚本的其余部分。

在通过 init.goovy 设置大部分参数后,您可能需要 .save()。也许这就是您没有看到更改的原因。

如果您真的很偏执,可以先调用 Hudson.instance.doQuietDown(), which effective blocks the queue (multiple init.groovy scripts execute in lexical order), do all the configurations, then invoke doCancelQuietDown(),但我们没有遇到任何问题 w/o。

这种方法 (init.groovy.d) 工作正常,但现在它已经成熟,希望切换到 JCasC。 CasC 更易于管理(同样,为每个插件使用单独的配置文件)和读取。