2016-02-11 4 views
1

Я использую плагин jenkins-dsl. После того, как мое начальное задание закончено успешно, моя конфигурация dsl создала новое задание, как и ожидалось (давайте назовем новое созданное задание «JobA»). JobA должен выполнить шаг сборки sbt. При запуске Joba в первый раз он не в состоянии сразу со следующей ошибкой:Jenkins DSL job failing

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) 

Однако, если я не идти в Дженкинс ш в закладке конфигурации 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') 
} 
} 
+0

Все выглядит хорошо для меня, и я могу без проблем работать с этой DSL-работой. Хотя я отмечаю, что одна и та же ошибка Java упоминается в https://issues.jenkins-ci.org/browse/JENKINS-22718 (хотя у вас, возможно, есть более старая версия плагина?), Но это не легко объясняет, почему он работает после сохранения задания снова. Как было предложено ниже, интересный вариант «config.xml» задания до и после сохранения. –

ответ

2

попробуйте сравнить XML-конфигурации Joba до и после сохранения работы (или лучше взять снимок для целых рабочих мест) каталогов. Вы можете что-то найти.

0

У вас есть правильное количество параметров в вызове sbt? The API for sbt предполагает, что может/должно быть пять. (Я не знаю, какие из них могут быть необязательными.)

Возможно, это как-то связано с ключевым словом job? В разделе 1.30 говорится, что он устарел в пользу других, более точных ключевых слов. Однако он все еще часто используется в следующей документации.

Если вы вызываете свой DSL из сценария, вы должны определенно адаптироваться к, например, freeStyleJob.

+0

В документации указано, что требуется только первый параметр 'sbt'; остальные четыре по умолчанию - «null». –

Смежные вопросы