Added kill old test runs to test models pipeline
Change-Id: I892d00ad0605cda7ea0f64d0e3e0f4f6d9693287
diff --git a/test-groovy-pipeline.groovy b/test-groovy-pipeline.groovy
index 918fc98..61dfae7 100644
--- a/test-groovy-pipeline.groovy
+++ b/test-groovy-pipeline.groovy
@@ -28,6 +28,15 @@
node("docker"){
try {
+ stage("stop old tests"){
+ if (gerritRef) {
+ def runningTestBuildNums = _getRunningTriggeredTestsBuildNumbers(env["JOB_NAME"], GERRIT_CHANGE_NUMBER, GERRIT_PATCHSET_NUMBER)
+ for(int i=0; i<runningTestBuildNums.size(); i++){
+ common.infoMsg("Old test with run number ${runningTestBuildNums[i]} found, stopping")
+ Jenkins.instance.getItemByFullName(env["JOB_NAME"]).getBuildByNumber(runningTestBuildNums[i]).finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));
+ }
+ }
+ }
stage ('Checkout source code'){
if (gerritRef) {
// job is triggered by Gerrit
@@ -72,3 +81,14 @@
common.sendNotification(currentBuild.result, "" ,["slack"])
}
}
+@NonCPS
+def _getRunningTriggeredTestsBuildNumbers(jobName, gerritChangeNumber, excludePatchsetNumber){
+ def gerrit = new com.mirantis.mk.Gerrit()
+ def jenkinsUtils = new com.mirantis.mk.JenkinsUtils()
+ def triggeredBuilds= gerrit.getGerritTriggeredBuilds(jenkinsUtils.getJobRunningBuilds(jobName), gerritChangeNumber, excludePatchsetNumber)
+ def buildNums =[]
+ for(int i=0;i<triggeredBuilds.size();i++){
+ buildNums.add(triggeredBuilds[i].number)
+ }
+ return buildNums
+}