Home > Net >  Re-run a pipeline using script jenkins
Re-run a pipeline using script jenkins

Time:12-23

I have a pipeline with some information detailed behind

pipeline {
    parameters {
        booleanParam(name: 'RERUN', defaultValue: false, description: 'Run Failed Tests')
    }
    stage('Run tests ') {
        steps {
            runTest()
        }
    }
    post {
        always {
            reRun()
        }
    }
}

def reRun() {
    if ("SUCCESS".equals(currentBuild.result)) {
        echo "LAST BUILD WAS SUCCESS"
    } else if ("UNSTABLE".equals(currentBuild.result)) {
        echo "LAST BUILD WAS UNSTABLE"
    }
}

but I want that after the stage "Run tests" execute, if some tests fail I want to re-run the pipeline with parameters RERUN true instead of false. How can I replay via script instead of using plugins ? I wasn't able to find how to re-run using parameters on my search, if someone could help me I will be grateful.

CodePudding user response:

First of you can use the post step to determine if the job was unstable:

post{
    unstable{
        echo "..."
    }
}

Then you could just trigger the same job with the new parameter like this:

build job: 'your-project-name', parameters: [[$class: 'BooleanParameterValue', name: 'RERUN', value: Boolean.valueOf("true")]] 
  • Related