Jenkins JobDSL只在Debian上构建了一半的工作 - 没有错误抛出

时间:2015-05-07 11:50:52

标签: jenkins jenkins-job-dsl

我正在将Jenkins从Windows迁移到Debian。我有一个在Windows机器上运行良好的JobDSL,但在Debian上使用它,它只构建一些XML模块并且无法解释大多数其他模块,即它们显示为未配置的字段/它们的节点在 config中不存在.XML 。 DSL是从它自己的Jenkins作业中调用的,它仅检出代码然后从文件中调用DSL。如果出现问题,即如果DSL找不到它应该配置的插件,则构建将失败或变得不稳定,具体取决于错误是什么。

然而,创建作业完成为'SUCCESS',即使它的DSL被翻译成错误的 config.xml 。这样,我无法弄清楚出了什么问题。

在两个系统上,Jenkins为1.596.2,DSL Plugin为1.32(Win)/1.34(Deb)。我小心翼翼地安装了DSL所需的所有Jenkins插件。

编辑:我通过the backports将Groovy更新为2.2.2,但没有改变DSL效果。

有谁知道可能导致这种情况的原因?

2 个答案:

答案 0 :(得分:1)

如果您的问题是由旧的groovy版本引起的,您可以通过debian backports安装新版本:( this answer中也有描述)

  1. private boolean intercept(MotionEvent ev, View view, float boundingBoxTolerance){ if (boundingBoxTolerance < 1.0f) { boundingBoxTolerance = 1.0f; } try { if (ev != null && view != null) { int coords[] = new int[2]; view.getLocationOnScreen(coords); if (ev.getRawX() >= ((float)coords[0]) / boundingBoxTolerance && ev.getRawX() <= coords[0] + ((float) view.getWidth()) * boundingBoxTolerance) { if(ev.getRawY() >= ((float)coords[1]) / boundingBoxTolerance && ev.getRawY() <= coords[1] + ((float) view.getHeight()) * boundingBoxTolerance) return true; } } } catch (Exception e) {} return false; }
  2. 添加deb http://http.debian.net/debian wheezy-backports main(或squeeze之类的其他分发,您可能只看其他行)
  3. /etc/apt/sources.list以root身份(或通过apt-get update
  4. sudo(如果需要,再次替换apt-get install -t wheezy-backports groovy
  5. 使用wheezy进行更新的优势是

    • 它始终使版本保持最新(使用backports时)和
    • 它安装系统范围的,即适用于所有用户。截至the GVM homepage,GVM似乎并非如此:
      

    然后它将在您的主目录中创建一个.gvm /文件夹,并且整齐   安装所有候选人。

答案 1 :(得分:1)

在开始为我的帖子提取一个自包含的代码示例时,我发现效果似乎是由archiveXunit模块引起的。当我在publishers部分中省略它时,一切都按预期工作。包括它会导致奇怪的干扰,例如:到SCM和Log Rotation模块。

正如旁注,我在此期间将Debian升级为Jessie,因为Wheezy不支持groovy2包(版本2.x.x),并且安装它需要一些不必要的体操。我甚至不需要在Jessie上使用backports。 (我想知道快速发展的Jenkins和保守派Debian的组合是否是一个不错的选择,但我想时间会证明。)

所以,是的......对我来说似乎是一个插件问题。我还写信给插件的邮件列表here。我会继续调查这个。

更新:

这似乎是一个插件问题,但不是来自JobDSL,而是来自 xUnit和JUnit插件之间的依赖关系。我想创建一个特别纤薄的设置并停用JUnit插件,发现我的系统上没有Java构建或测试......好吧:激活了xUnit,但没有JUnit,JobDSL以上述方式失败。激活JUnit会使这个问题消失。 Here是我对Jenkins JIRA中的小xUnit错误的描述。