我有一个詹金斯管道,它有5个阶段。假设我运行它并且它的构建ID为5,但是在第3阶段失败。
现在,我使用Restart from failed stage
功能重新运行版本5,当前版本的ID为7(与此同时有人以ID 6的身份运行)。现在,当前正在运行的ID为7的构建中,我想获取此构建已重新启动的构建的ID(即5)。
有没有可以用来获取当前构建已重启的构建ID的api?
答案 0 :(得分:0)
您可以通过currentBuild.rawBuild.getCause(RestartDeclarativePipelineCause)
获取此信息:
工作管道示例:
pipeline{
agent any
stages {
stage('Stage 1') {
steps {
echoRestartedInfo()
}
}
stage('Stage 2') {
steps {
echoRestartedInfo()
}
}
}
}
void echoRestartedInfo() {
def restartCause = currentBuild.rawBuild.getCause(
org.jenkinsci.plugins.pipeline.modeldefinition.causes.RestartDeclarativePipelineCause )
if( restartCause ) {
def originRunNumber = restartCause.originRunNumber
def originStage = restartCause.originStage
echo "Restarted from build $originRunNumber, stage '$originStage'"
}
else {
echo "Normal run"
}
}
由于使用rawBuild
,因此在沙箱中不起作用。将代码移到共享库中以解决此限制。