Как создать методы для шагов в декларативном конвейере Jenkins? - PullRequest
0 голосов
/ 09 января 2019

Я хочу обернуть steps и post в функцию.

Это прекрасно работает:

pipeline {
    agent any
    stages {
        stage('Test') {
            steps {
                whateverFunction()
            }
            post {
                sh 'echo test'
            }
        }
    }
}

void whateverFunction() {
    sh 'ls /'
}

Но как только я упаковываю шаги и публикую свою функцию, она не работает. (Ошибка с ошибкой: steps in a stage must be in a ‘steps’ block.)

pipeline {
    agent any
    stages {
        stage('Test') {
            whateverFunction()
        }
    }
}

void whateverFunction() {
    steps {
        sh 'echo test'  
    }
    post {
        sh 'echo test'
    }
}

Я также попытался получить steps, а затем вызвать мою функцию на этом шаге с steps внутри. В основном деформация steps в steps приводит к тому, что ни один шаг не выполняется. (Но, видимо, это будет действительный файл Дженкинса)

Возможно ли иметь функцию, которая содержит steps и post внутри сцены. Или есть способ добиться подобной функциональности?

1 Ответ

0 голосов
/ 10 января 2019

Кажется, что вы не можете создать аналогичную функциональность с post внутри метода в декларативном конвейере. Для этого вы можете попробовать использовать скриптовые конвейеры.

Для декларативных конвейеров вы можете использовать post секцию только внутри stage ( пример ) или после stages блока ( пример ).

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