如何在Jenkinsfile中访问重播构建的当前状态

yzxexxkh  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(86)

当我重播一个版本时,我想访问该版本的当前状态。我在here中检查了currentBuild对象的属性,但找不到任何解决方案。

def replayClassName = 'org.jenkinsci.plugins.workflow.cps.replay.ReplayCause'
def cause = currentBuild.getBuildCauses(replayClassName)
def isReplay = !(cause.isEmpty())

if(isReplay) {
    if(REPLAYED_BUILD_STATUS == 'SUCCESS'){
        // Do something
    } else {
        // Do something else
    }
}

字符串
我尝试了currentBuild.resultcurrentResult属性,但它们返回null

qltillow

qltillow1#

IMHO repeats在脚本管道中没有用,但是如果你想得到couse构建结果,你必须首先得到那个构建:
可能需要Jenkins的批准

管道:

pipeline {
    agent any
    stages {
        stage('Hello') {
            steps {
                script{
                    def replay_couse = currentBuild
                       .rawBuild
                       .getCause(org.jenkinsci.plugins.workflow.cps.replay.ReplayCause)                       
                    if(replay_couse){
                       print replay_couse.getOriginalNumber()
                       print replay_couse.getOriginal().result
                    }
                    else{
                        print 'not replayed'
                    }
                }
            }
        }
    }
}

字符串
参考文献:getOriginal()Jenkins-examples getCouse

相关问题