我正在尝试在管道作业中调用一组现有的詹金斯作业。我有所有职位名称的列表。我试图循环浏览作业名称并构建每个作业,但是即使作业已成功触发,在管道末尾也会出现错误。
使用Jenkins 2.164.2,管道2.6
如果我同时使用脚本/声明的管道,则错误相同。
作业并行触发,但我在管道末尾遇到异常,并且管道作业失败原因:java.io.NotSerializableException: hudson.model.Hudson
Jenkins日志:
[Pipeline]并行
[Pipeline] {(分支:a)
[Pipeline] build(构建a)
计划项目:a
[Pipeline] { (分支:b)
[管道]构建(建筑物b)
计划 项目:b
[管道]}
在分支b中失败
[管道]}
分支
[Pipeline]}
[Pipeline] //脚本失败
[管道]}
[管道] //阶段
[管道] }
[管道] //节点
[管道]管道末端
发生的异常:在字段中
对象中的com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
com.cloudbees.groovy.cps.impl.BlockScopeEnv@409a0d4f ...原因:
java.io.NotSerializableException:hudson.model.Hudson at
org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926) ...位于java.lang.Thread.run(Thread.java:748)完成:失败
@NonCPS
def getBranches(def JobNamesList) {
def branches = [: ]
JobNamesList.each() { jobName ->
branches[jobName] = {
build job: jobName
}
}
return branches
}
pipeline {
agent any
stages {
stage('Get Services') {
steps {
script {
jobNames = ['a','b']
parallel getBranches(jobNames)
}
}
}
}
}