简体   繁体   English

Jenkins声明性管道的不可序列化错误

[英]Not serializable error for jenkins declarative pipeline

I am trying to trigger my email promotion job from my pipeline which extracts the repo name from Jenkins messages. 我试图从我的管道中触发我的电子邮件推广工作,该管道从Jenkins消息中提取回购名称。 But not able to resolve the SerializableException error for this block. 但是无法解决此块的SerializableException错误。 Any help is greatly appreciated. 任何帮助是极大的赞赏。

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]]


            }
        }
    }

Below is the error messages i am receiving : 以下是我收到的错误消息:

[Pipeline] // script Error when executing success post condition: [管道] //脚本执行成功发布条件时出错:

java.io.NotSerializableException: java.util.regex.Matcher at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926) at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65) at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56) at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50) at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179) java.io.NotSerializableException:org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMars65)上的org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926) )在org.jboss.marshalling.Marshalling.river.BlockMarshaller.java:56在org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)在org.jboss.marshalling。 RiverObjectOutputStream.java:179)

You need to release manager immediately after using. 使用后,您需要立即释放manager More detail can find in this post 更多细节可以在这篇文章中找到

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]
        ]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM