2016-02-11 141 views
1

我正在使用jenkins-dsl插件。 我的种子工作成功完成后,我的dsl config按预期创建了一个新的工作(我们称之为新创建的工作“JobA”)。 JobA应该运行一个构建步骤。 当运行职吧,第一次就立即出现以下错误失败:如果我不是去詹金斯UI进入职吧配置选项卡Jenkins DSL作业失败

ERROR: Build step failed with exception 
java.lang.NullPointerException 
    at org.jvnet.hudson.plugins.SbtPluginBuilder.buildCmdLine(SbtPluginBuilder.java:159) 
    at org.jvnet.hudson.plugins.SbtPluginBuilder.perform(SbtPluginBuilder.java:111) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779) 
    at hudson.model.Build$BuildExecution.build(Build.java:205) 
    at hudson.model.Build$BuildExecution.doRun(Build.java:162) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537) 
    at hudson.model.Run.execute(Run.java:1741) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:408) 

不过,我什么都不做,一个,保存工作,比运行再工作,它的工作! 下面附带DSL。

有什么建议吗?

job('JobA') { 
scm { 
    git { 
     remote { 
      github('XXXXXXX') 
      credentials('XXXXXXXX') 
     } 
     createTag(false) 
     branch('*/master') 
    } 
} 

triggers { 
    githubPush() 
} 

//sbt 
steps { 
    sbt('sbt', 
      'clean compile test publish', 
      '-Dsbt.log.noformat=true', 
      '-Xmx2G -Xms512M') 
} 
} 
+0

一切看起来都很好,我可以运行DSL生成的作业,没有任何问题。虽然我注意到在https://issues.jenkins-ci.org/browse/JENKINS-22718中提到了相同的Java错误(虽然你可能有一个旧版本的插件?),但这并不能解释为什么它在再次保存工作之后起作用。如下所示,在保存之前和之后对作业的“config.xml”进行比较会很有趣。 –

回答

2

尝试之前和保存工作(或整个工作做得更好取快照)目录后比较职吧的XML配置。你可能会找到一些东西

0

你确定你在sbt调用中有正确数量的参数吗? The API for sbt表明可以/应该有五个。 (我不知道哪些可能是可选的。)

或者它可能与job关键字有关?在migration notes的第1.30节中,它表示它已被弃用,转而使用其他更精确的关键字。但是,它仍然经常在以下文档中使用。

如果你从脚本中调用你的DSL,你绝对应该适应,例如freeStyleJob。

+0

该文档说只有第一个参数'sbt'是必需的;另外四个默认为'null'。 –