как снова запустить то же самое задание с другим значением параметра, если оно не удалось в течение одного раза? - PullRequest
0 голосов
/ 06 марта 2019

Мне нужно снова запустить то же самое задание с другим значением параметра в случае сбоя. Но я не хочу запускать то же самое, если это запускается из-за сбоя. Как я могу справиться с этим?

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вы можете сделать

try {
    build job: 'PayloadJob', parameters: [
              //some param
          ]
} catch (Exception e) {
    build job: 'PayloadJob', parameters: [
              //other param
          ]
}

Если вам нужно запустить саму себя, просто установите дополнительный параметр, чтобы выяснить, что вы были запущены после сбоя.

0 голосов
/ 07 марта 2019

В этом примере показано, как запустить одно и то же задание с указанным параметром: перестроить
или нет, и запустить задание, если по какой-либо причине сборка не удалась.

pipeline{
    agent any
    stages{
        stage('do something'){
            steps{
                script{
                    if(rebuild == "no"){
                        // this is to demonstrate how it's work.
                        currentBuild.result = 'FAILURE'
                    }else{
                        println "success"
                    }
                }
            }
        }
    }
    post {
        failure {
            // To prevent endless loop in case the nested build fails,
            // trigger nested job only if it's not a rebuild . 
            if(rebuild == "no"){
                println "On failure"
                build job:"TestStep" ,
                     propagate: true, //Set current job to failure if nested job fail. 
                     parameters:[string(name:'rebuild ',value:"yes")]
            }
        }
    }
}
...