Jenkins DSL工作失败

时间:2016-02-11 17:57:40

标签: jenkins sbt

我正在使用jenkins-dsl插件。 我的种子作业成功完成后,我的dsl配置按预期创建了一个新作业(让我们调用新创建的作业" JobA")。 JobA应该运行一个sbt构建步骤。 第一次运行JobA时,它立即失败并出现以下错误:

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)

然而,如果我在jenkins ui进入JobA配置选项卡,我没有,一个,保存工作,而不是再次运行工作,它的工作原理! 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')
}
}

2 个答案:

答案 0 :(得分:2)

尝试在保存作业(或更好地为整个作业拍摄快照)目录之前和之后比较JobA的xml配置。你可能会发现一些东西

答案 1 :(得分:0)

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

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

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