From b6e3d4e3514fd3010bc2ed5f7e30cd14d10995b6 Mon Sep 17 00:00:00 2001 From: liuyq-617 Date: Tue, 23 Mar 2021 10:21:44 +0800 Subject: [PATCH] test abort last job --- Jenkinsfile | 71 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 68fe4879c1..31219d4c1b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,37 +6,56 @@ node { } def skipstage=0 -def abortPreviousBuilds() { - def currentJobName = env.JOB_NAME - def currentBuildNumber = env.BUILD_NUMBER.toInteger() - def jobs = Jenkins.instance.getItemByFullName(currentJobName) - def builds = jobs.getBuilds() +def cancelPreviousBuilds() { + def jobName = env.JOB_NAME + def buildNumber = env.BUILD_NUMBER.toInteger() + /* Get job name */ + def currentJob = Jenkins.instance.getItemByFullName(jobName) - for (build in builds) { - if (!build.isBuilding()) { - continue; + /* Iterating over the builds for specific job */ + for (def build : currentJob.builds) { + def exec = build.getExecutor() + /* If there is a build that is currently running and it's not current build */ + if (build.isBuilding() && build.number.toInteger() != buildNumber && exec != null) { + /* Then stop it */ + exec.interrupt( + Result.ABORTED, + new CauseOfInterruption.UserInterruption("Aborted by #${currentBuild.number}") + ) + println("Aborted previously running build #${build.number}") + } } +} +// def abortPreviousBuilds() { +// def currentJobName = env.JOB_NAME +// def currentBuildNumber = env.BUILD_NUMBER.toInteger() +// def jobs = Jenkins.instance.getItemByFullName(currentJobName) +// def builds = jobs.getBuilds() - if (currentBuildNumber == build.getNumber().toInteger()) { - continue; - } +// for (build in builds) { +// if (!build.isBuilding()) { +// continue; +// } - build.doKill() //doTerm(),doKill(),doTerm() - } -} -//abort previous build -abortPreviousBuilds() -def abort_previous(){ - def buildNumber = env.BUILD_NUMBER as int - if (buildNumber > 1) milestone(buildNumber - 1) - milestone(buildNumber) -} +// if (currentBuildNumber == build.getNumber().toInteger()) { +// continue; +// } + +// build.doKill() //doTerm(),doKill(),doTerm() +// } +// } +// //abort previous build +// abortPreviousBuilds() +// def abort_previous(){ +// def buildNumber = env.BUILD_NUMBER as int +// if (buildNumber > 1) milestone(buildNumber - 1) +// milestone(buildNumber) +// } def pre_test(){ - catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { - sh ''' - sudo rmtaos - ''' - } + + sh ''' + sudo rmtaos || echo "taosd has not installed" + ''' sh ''' cd ${WKC} -- GitLab