Jenkins JobDSL 只在 Debian 上构建了一半的工作——没有抛出错误
Jenkins JobDSL only builds half the job on Debian - no error thrown
我正在将 Jenkins 从 Windows 迁移到 Debian。我有一个在 Windows 机器上运行良好的 JobDSL,但在 Debian 上使用它,它只构建了一些 XML 模块并且无法解释大多数其他模块,即它们显示为未配置的 fields/their 节点config.xml 中不存在。 DSL 是从它自己的 Jenkins 作业中调用的,该作业仅检查代码,然后从文件中调用 DSL。如果出现问题,即如果 DSL 找不到它应该配置的插件,则构建将失败或变得不稳定,具体取决于错误是什么。
然而,创建作业以 'SUCCESS' 完成,即使它的 DSL 被翻译成错误的 config.xml。这样一来,我就想不出哪里出了问题。
在这两个系统上,Jenkins 是 1.596.2,DSL Plugin 是 1.32(Win)/1.34(Deb)。我小心地安装了 DSL 需要的所有 Jenkins 插件。
编辑:我通过 将 Groovy 更新为 2.2.2,但 DSL 效果没有变化。
有谁知道这可能是什么原因造成的?
如果您的问题是由于旧的 groovy 版本引起的,您可以通过 debian backports: (it is also described in this answer)
安装更新的版本
- 将
deb http://http.debian.net/debian wheezy-backports main
(或其他发行版,如 squeeze
,您可能只看其他行)添加到您的 /etc/apt/sources.list
apt-get update
作为根用户(或通过 sudo
)
apt-get install -t wheezy-backports groovy
(如有必要,再次替换 wheezy
)
使用apt-get
更新的优点是
- 它始终使版本保持最新(使用向后移植时),并且
- 它安装系统范围,即为所有用户安装。自 the GVM homepage 起,GVM 似乎并非如此:
It will then create a .gvm/ folder in your home directory, and neatly
install all candidates beneath it.
在开始为我的 post 提取一个独立的代码示例时,我发现效果似乎是由 archiveXunit
模块引起的。当我在 publishers
部分省略它时,一切都按预期进行。包括它会导致奇怪的干扰,例如到 SCM 和 Log Rotation 模块。
作为旁注,我同时将 Debian 升级到 Jessie,因为 Wheezy 不支持 groovy2
软件包(版本 2.x.x),安装它需要一些不必要的体操。我什至不需要在 Jessie 上使用反向移植。 (我想知道快速发展的 Jenkins 和保守的 Debian 的结合是否首先是一个不错的选择,但我想时间会证明一切。)
所以,是的......对我来说似乎是一个插件问题。我还写信给插件的邮件列表 here。我会继续调查这个。
更新:
这似乎是一个插件问题,但不是来自 JobDSL,而是来自 xUnit 和 JUnit 插件之间的依赖关系。我想创建一个特别精简的设置并停用 JUnit 插件,假设我在我的系统上没有 Java 构建或测试......好吧:在激活 xUnit 而不是 JUnit 的情况下,JobDSL 以上述方式失败。激活 JUnit 可以解决这个问题。 Here 是我对 Jenkins JIRA 中 xUnit 小错误的描述。
我正在将 Jenkins 从 Windows 迁移到 Debian。我有一个在 Windows 机器上运行良好的 JobDSL,但在 Debian 上使用它,它只构建了一些 XML 模块并且无法解释大多数其他模块,即它们显示为未配置的 fields/their 节点config.xml 中不存在。 DSL 是从它自己的 Jenkins 作业中调用的,该作业仅检查代码,然后从文件中调用 DSL。如果出现问题,即如果 DSL 找不到它应该配置的插件,则构建将失败或变得不稳定,具体取决于错误是什么。
然而,创建作业以 'SUCCESS' 完成,即使它的 DSL 被翻译成错误的 config.xml。这样一来,我就想不出哪里出了问题。
在这两个系统上,Jenkins 是 1.596.2,DSL Plugin 是 1.32(Win)/1.34(Deb)。我小心地安装了 DSL 需要的所有 Jenkins 插件。
编辑:我通过
有谁知道这可能是什么原因造成的?
如果您的问题是由于旧的 groovy 版本引起的,您可以通过 debian backports: (it is also described in this answer)
安装更新的版本- 将
deb http://http.debian.net/debian wheezy-backports main
(或其他发行版,如squeeze
,您可能只看其他行)添加到您的/etc/apt/sources.list
apt-get update
作为根用户(或通过sudo
)apt-get install -t wheezy-backports groovy
(如有必要,再次替换wheezy
)
使用apt-get
更新的优点是
- 它始终使版本保持最新(使用向后移植时),并且
- 它安装系统范围,即为所有用户安装。自 the GVM homepage 起,GVM 似乎并非如此:
It will then create a .gvm/ folder in your home directory, and neatly install all candidates beneath it.
在开始为我的 post 提取一个独立的代码示例时,我发现效果似乎是由 archiveXunit
模块引起的。当我在 publishers
部分省略它时,一切都按预期进行。包括它会导致奇怪的干扰,例如到 SCM 和 Log Rotation 模块。
作为旁注,我同时将 Debian 升级到 Jessie,因为 Wheezy 不支持 groovy2
软件包(版本 2.x.x),安装它需要一些不必要的体操。我什至不需要在 Jessie 上使用反向移植。 (我想知道快速发展的 Jenkins 和保守的 Debian 的结合是否首先是一个不错的选择,但我想时间会证明一切。)
所以,是的......对我来说似乎是一个插件问题。我还写信给插件的邮件列表 here。我会继续调查这个。
更新:
这似乎是一个插件问题,但不是来自 JobDSL,而是来自 xUnit 和 JUnit 插件之间的依赖关系。我想创建一个特别精简的设置并停用 JUnit 插件,假设我在我的系统上没有 Java 构建或测试......好吧:在激活 xUnit 而不是 JUnit 的情况下,JobDSL 以上述方式失败。激活 JUnit 可以解决这个问题。 Here 是我对 Jenkins JIRA 中 xUnit 小错误的描述。