В Jenkins createItem вызывает NotSerializableException, но выполняет ли это задание... стоит ли мне беспокоиться?
Я вызываю createItem в функции из цикла, полученного из списка git currentBuild.changeSets
Вот функция:
def boolean shCreateJob(jobName) {
jobName = jobName.toString()
command = "curl -s -XPOST '$JENKINS_URL/createItem?name=$jobName' -u user:secret --data-binary ${TEMPLATE_FILE} -H 'Content-Type:text/xml'"
command = command.toString()
println("In shCreateJob, command=$command")
println("In shCreateJob, command.getClass()=${command.getClass()}")
try {
sh "curl $command"
}
catch (err) {
echo 'Exception during job creation : ' + err
}
return true
}
Как видите, в функции я пытаюсь преобразовать имя и команду в String, чтобы гарантировать, что команда sh не получит ничего экзотического.
Вот результат:
In shCreateJob, command=curl -s -XPOST 'http://10.128.128.168:8080//createItem?name=cz_AAA' -u user:secret --data-binary @//var/lib/jenkins/jobs/_upload_template/config.xml -H 'Content-Type:text/xml'
[Pipeline] echo
In shCreateJob, command.getClass()=class java.lang.String
[Pipeline] sh
[Pipeline] echo
Exception during job creation : java.io.NotSerializableException: java.util.LinkedHashMap$Entry
И тем не менее, задание завершается успешно, а новое задание создается, как и ожидалось! В чем дело?