Несериализуемая ошибка для декларативного конвейера jenkins - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь запустить мою работу по продвижению электронной почты из моего конвейера, который извлекает имя репо из Jenkins сообщений.Но не удалось устранить ошибку SerializableException для этого блока.Любая помощь приветствуется.

post{
        success{
            script{
                @NonCPS
                //upstream_job_name = null
                def manager = manager.getLogMatcher('.*Obtained Jenkinsfile from git (.*)$')
                if(manager.matches()){
                    def gitMsg=manager.group(1)
                    gitrepo = "${gitMsg}"
                    echo gitrepo
                    def upstream_job_name = gitrepo.split("/")[4].replace(".git", "")
                    println upstream_job_name

                }
                build job: 'job-approval' , parameters: [[$class: 'StringParameterValue', name: 'upstream_job_name', value: upstream_job_name]]


            }
        }
    }

Ниже приведены сообщения об ошибках, которые я получаю:

[Pipeline] // Ошибка сценария при выполнении условия успешного завершения:

java.io.NotSerializableException: java.util.regex.Matcher at org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:926) в org.jboss.marshalling.river.BlockMarshalb.jpg: 65) по адресу org.jboss.marshalling.river.BlockMarshaller.writeObject (BlockMarshaller.java:56) по адресу org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride (MarshallerObjectOutputStream.jall.Out.Ori.Orij.writeObjectOverride (RiverObjectOutputStream.java:179)

1 Ответ

0 голосов
/ 19 апреля 2019

Вам нужно выпустить manager сразу после использования.Более подробно можно найти в этом сообщении

script{

    //upstream_job_name = null
    def manager = manager.getLogMatcher('.*Obtained Jenkinsfile from git (.*)$')
    if(manager.matches()){
        def gitMsg=manager.group(1)
        gitrepo = "${gitMsg}"
        echo gitrepo
        def upstream_job_name = gitrepo.split("/")[4].replace(".git", "")
        println upstream_job_name      
    }
    manager = null

    build job: 'job-approval' , 
        parameters: [
            [$class: 'StringParameterValue', name: 'upstream_job_name', value: upstream_job_name]
        ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...