我试图触发我的电子邮件提升工作,从我的管道提取回购名称从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]]
}
}
}下面是我收到的错误消息:
执行成功后条件时管道//脚本错误:
org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926),org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65),org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56),org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50),org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
发布于 2019-04-19 00:01:32
您需要在使用之后立即发布manager。在这个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]
]
}https://stackoverflow.com/questions/55749599
复制相似问题