Прерывание проекта трубопровода Дженкинса из оболочки - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь прервать проект jenkins pipline со стадии, которая выполняет условие оболочки if else.Я хочу прервать сборку jenkins при выполнении условия if.

ниже - код этапа.

        stage('stage: Abort check'){
        steps{
            script{
                sh '''
                    if [ `ls ${DIR} | wc -l` -ge 8 ] ; then
                        echo "More then 5 card definition applications are running. Delete Few applications"\n
                        echo "ABORTING the JOB"
                        currentBuild.result = 'ABORTED'
                    else
                        echo "Less then 5 card definition applications are running. Excecuting remaining stages"
                    fi;

                '''
            }
        }
    }

Я использовал декларативную команду currentBuild.result = 'ABORTED', но ее нельзя использовать в блоке оболочки.

Я получаю currentBuild.result: not found ошибку

Может кто-нибудь подсказать мне, как это можно сделать?

1 Ответ

1 голос
/ 06 мая 2019

В контексте вашей оболочки нет currentBuild, он есть в контексте вашего конвейера jenkins.

Вы должны положиться на вывод своих команд sh и выполнить currentBuild.result = 'ABORTED' за пределами sh '''.

steps{
    script{
        def res = 0
        res = sh(script: '''
                if [ `ls ${DIR} | wc -l` -ge 8 ] ; then
                    echo "More then 5 card definition applications are running. Delete Few applications"\n
                    echo "ABORTING the JOB"
                    exit 1
                else
                    echo "Less then 5 card definition applications are running. Excecuting remaining stages"
                    exit 0
                fi;
            '''
                  , returnStatus:true)
        if (res != 0) {
          currentBuild.result = 'ABORTED'
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...