Декларативный конвейер Jenkins: проверка предыдущего состояния сборки - PullRequest
0 голосов
/ 23 марта 2020

Каков наилучший способ проверить, не прошел ли предыдущий этап или нет, используя Jenkins декларативный конвейер и, если это не удалось, выполните команду отката.

I только что попробовал, как показано ниже, но выдает ошибку, как показано ниже.

Скриптам не разрешено использовать метод org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild. Администраторы могут решить, утвердить или отклонить эту подпись.

    stage('Deploy to production'){
        when{
            beforeAgent true
            expression{return env.GIT_BRANCH == "origin/master"}
        }
        steps{
            script{
                    echo "Deploying production environment"
                    sh "helm install ...."

                }else {
                    error "Buid was not confirmed"
                }
    stage('Roll Back'){
        when{
            expression {
                !hudson.model.Result.SUCCESS.equals(currentBuild.rawBuild.getPreviousBuild()?.getResult()) == true
            }
        }
        steps{
            script{
                sh "helm rollback <release> 0"
            }
        }
    }
}

1 Ответ

2 голосов
/ 23 марта 2020

Вы можете использовать !("SUCCESS".equals(currentBuild.previousBuild.result)).

Кажется, что rawBuild ограничено доверенными библиотеками (глобально определенными библиотеками), или вам нужно добавить исключение для этого метода.

Но использование .previousBuild напрямую должно работать.

https://opensource.triology.de/jenkins/pipeline-syntax/globals

...