繁体   English   中英

扩展 Jenkins Groovy DSL

[英]Extending the Jenkins Groovy DSL

如何向我的 Jenkins 实例添加/编辑可以在 DSL 脚本中访问的新代码? 上下文如下

我继承了一个 Jenkins 实例。 inheritance 的一部分包括 在鬼屋 过夜,通过Jobs DSL 插件在 groovy 中编写一些新的自动化。 因为我害怕破坏我们的 jenkins 实例,所以我的第一步是建立一个本地开发实例。

我在本地开发实例上运行我们现有的DSL 脚本之一时遇到问题——我在本地服务器上的构建失败,并在 Jenkins 错误控制台中显示以下内容。

Processing DSL script jobs.groovy
ERROR: startup failed:
jobs.groovy: 1: unable to resolve class thecompanysname.jenkins.extensions

有问题的脚本是这样开始的。

import thecompanysname.jenkins.extensions

use(extensions) {
  def org = 'project-name'
  def project = 'test-jenkins-repo'
  def _email = 'foo@example.com'

所以,据我所知,似乎前任已经编写了一些他们正在导入的自定义 Groovy 代码

import thecompanysname.jenkins.extensions

我不清楚的是

  1. 此代码所在的位置
  2. 我如何在我们真正的 Jenkins 实例中找到它
  3. 如何添加到我的本地实例

欢迎提供具体答案,因为我们在这里介绍了如何学习钓鱼答案。

虽然可能有其他方法可以做到这一点,但经过一番探索后,我发现

  1. 我安装的 Jenkins 实例安装了旧版本的Jobs DSL 插件

  2. 这个版本的 Jobs DSL 插件允许您在Process DSL Builds作业部分设置一个额外的classpath ,该类路径指向额外jar文件。

  3. 这些 jar 文件可以让您访问 groovy 脚本中的其他类(即公司名称thecompanysname.jenkins.extensions

不幸的是,最新版本的Jobs DSL 插件已经删除了这个选项,目前还不清楚是否可以重新添加它。 然而,这是另一个问题。

配置全局安全 -> 取消选中“为作业 DSL 脚本启用脚本安全”。
为我工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM