задание Дженкинса, запускающее задание downstram с параметрами, не работающими

#jenkins #plugins #docker

#дженкинс #Плагины #docker

Вопрос:

Я пытаюсь выполнить нисходящее задание, используя плагин Дженкинса, чтобы передать параметры нисходящему заданию. Я добавил следующую конфигурацию в качестве шага сборки: следующая конфигурация в качестве шага сборки:. Верхнее задание успешно завершено, однако в нисходящем задании, где я использую плагин jenkins для сборки и отправки docker, он не принимает JBNAME :

 Building in workspace /home/jenkins/workspace/dockerbuild
ERROR: Unrecognized macro '**JBNAME**' in 'url/repo/**${JBNAME**}'
org.jenkinsci.plugins.tokenmacro.MacroEvaluationException:               Unrecognized    macro 'JBNAME' in 'url/repo/**${JBNAME}**'
at  org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:207)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:246)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:232)
at com.cloudbees.dockerpublish.DockerBuilder$Perform.expandAll(DockerBuilder.java:324)
at com.cloudbees.dockerpublish.DockerBuilder$Perform.getImageTags(DockerBuilder.java:336)
at com.cloudbees.dockerpublish.DockerBuilder$Perform.exec(DockerBuilder.java:305)
at com.cloudbees.dockerpublish.DockerBuilder$Perform.access$100(DockerBuilder.java:291)
at com.cloudbees.dockerpublish.DockerBuilder.perform(DockerBuilder.java:262)
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:534)
at hudson.model.Run.execute(Run.java:1720)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:404)
Build step 'Docker Build and Publish' marked build as failure
Finished: FAILURE
  

Когда я смотрю на ссылку параметров на странице неудачной сборки, поле пустое, оно не передавало никаких параметров, включая текущие или предопределенные:
введите описание изображения здесь
На данный момент я потерян. Мне действительно нужно передать имя восходящего задания заданию сборки docker, чтобы сохранить правильное наименование контейнера.

Большое вам спасибо!

Ответ №1:

Последние версии Jenkins больше не допускают необъявленных параметров. Подробности см. В соответствующих рекомендациях по безопасности.

В вашем случае вы, вероятно, могли бы просто объявить в JBNAME качестве параметра для нисходящего задания. Т.е. Выберите, что эта сборка параметризована в конфигурации нисходящего задания, и добавьте новый строковый параметр name JBNAME .

Комментарии:

1. Спасибо за быстрый ответ. Похоже, это сработало! Если я укажу это так, смогу ли я изменить значение на значение, определенное в задании upstream? Причина в том, что мне нужно использовать задание dockerbuild несколькими заданиями восходящего потока с разными значениями

2. Да, вы можете вызвать сборку с любым значением из любого восходящего задания, если имя параметра одинаковое (в вашем случае JBNAME ) как в восходящем, так и в нисходящем потоке.