如何检查同一分支上的上一个生成是否已启动<;3小时或>;使用Jenkins多分支管道3小时
我在Jenkins的特定分支上设置了一个多分支管道来触发Git merge上的管道,在那里我想有一个条件来检查同一分支上的上一个构建是否在3小时前启动以中止作业如何检查同一分支上的上一个生成是否已启动<;3小时或>;使用Jenkins多分支管道3小时,jenkins,jenkins-pipeline,jenkins-groovy,jenkins-job-dsl,Jenkins,Jenkins Pipeline,Jenkins Groovy,Jenkins Job Dsl,我在Jenkins的特定分支上设置了一个多分支管道来触发Git merge上的管道,在那里我想有一个条件来检查同一分支上的上一个构建是否在3小时前启动以中止作业 有什么方法可以做到这一点吗?您可以按如下方式进行,这应该符合您的要求 import java.util.concurrent.TimeUnit pipeline { agent any stages { stage ("TestStage"){
有什么方法可以做到这一点吗?您可以按如下方式进行,这应该符合您的要求
import java.util.concurrent.TimeUnit
pipeline {
agent any
stages {
stage ("TestStage"){
steps {
script {
def previousBuildStartTime = currentBuild.rawBuild.previousBuild.timestamp
def previousBuildStartTime_1 = previousBuildStartTime.getTimeInMillis()
def currentTime = System.currentTimeMillis()
def duration = TimeUnit.MILLISECONDS.toHours(currentTime - previousBuildStartTime_1)
echo "${currentTime} and ${previousBuildStartTime_1} and ${duration}"
catchError(buildResult: 'FAILURE', stageResult: 'ABORTED'){
if (duration < 3 || duration > 3){
echo "Less than 3 or greter than 3"
error("Aborting the stage")
}
}
}
}
}
}
}
method hudson.model.Run getPreviousBuild
method hudson.model.Run getTimestamp
method java.util.concurrent.TimeUnit toHours long
method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
staticField java.util.concurrent.TimeUnit MILLISECONDS