用户启动时构建失败且没有错误
Build fails without an error while getting started by user
我有一个以下管道,我试图让启动它的用户 -
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
pipeline {
agent {
label {
label "<node-name>"
}
}
stages {
stage('Testing') {
steps {
script {
println "Started by " + isStartedByUser
}
}
}
}
}
当运行构建时,它被标记为失败但在控制台输出中没有错误-
Started by hudson.model.Cause$UserIdCause@f42b6809
[Pipeline] }
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] }
[Pipeline] End of Pipeline
Finished: FAILURE
请帮助理解为什么它会毫无问题地失败。
currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
的返回对象类型为model.hudson.Cause
,不可序列化。
参考:https://javadoc.jenkins-ci.org/hudson/model/Cause.html(没有实现Serializable
接口)
根据您的需要,您可以添加一个 toString()
来解决您的问题或将其放入单独的方法中:
toString():
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause).toString()
方法:
def getCause() {
return currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause);
}
原来的异常已经被抛出但由于某种原因被吞掉了。您可以通过将环境块添加到您的管道来证明这一点。通过执行管道,您现在会看到异常。
environment {
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
}
我有一个以下管道,我试图让启动它的用户 -
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
pipeline {
agent {
label {
label "<node-name>"
}
}
stages {
stage('Testing') {
steps {
script {
println "Started by " + isStartedByUser
}
}
}
}
}
当运行构建时,它被标记为失败但在控制台输出中没有错误-
Started by hudson.model.Cause$UserIdCause@f42b6809
[Pipeline] }
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] }
[Pipeline] End of Pipeline
Finished: FAILURE
请帮助理解为什么它会毫无问题地失败。
currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
的返回对象类型为model.hudson.Cause
,不可序列化。
参考:https://javadoc.jenkins-ci.org/hudson/model/Cause.html(没有实现Serializable
接口)
根据您的需要,您可以添加一个 toString()
来解决您的问题或将其放入单独的方法中:
toString():
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause).toString()
方法:
def getCause() {
return currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause);
}
原来的异常已经被抛出但由于某种原因被吞掉了。您可以通过将环境块添加到您的管道来证明这一点。通过执行管道,您现在会看到异常。
environment {
isStartedByUser = currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause)
}