Дженкинс. Используйте общую библиотеку на этапе настройки - PullRequest
1 голос
/ 06 мая 2019

Итак, я создал общую библиотеку в jenkins с прослушивателем, который запускается каждый раз, когда конвейеры считывают FlowNode, чтобы я мог запускать код groovy до и после каждого этапа, шага и т. Д. *

Я могу вызвать общую библиотеку в пошаговой фазе, например:

pipeline {
    agent any
    stages {
        stage('prepare') { 
            steps{
                prepareStepsWrapper()
            }
        }
        stage('step1') { 
            steps {
                echo 'step1'
            }
        }
        stage('step2') { 
            steps {
                echo 'step2'
            }
        }
        stage('step3') { 
            steps {
                echo 'step3'
                // fail on purpose
                sh 'notfoundexecutablelol'
            }
        }
        stage('step4') { 
            steps {
                echo 'step4'
            }
        }
    }
    post{
        always{
            println env.getEnvironment()
        }
    }
}

И прекрасно работает!

При таком подходе стадию «подготовки» необходимо отфильтровать, поэтому я переключился на директиву опций:

pipeline {
    agent any
    options {
        prepareStepsWrapper()
    }
    stages {
        stage('step1') { 
            steps {
                echo 'step1'
            }
        }
        ...
    }
}

Но конвейер не работает с

WorkflowScript: 4: недопустимый тип параметра "prepareStepsWrapper"

ТЛ; др; Как я могу загрузить общую библиотеку в директиве параметров?

1 Ответ

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

Что делает опционная стадия?

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

Вы не можете вызвать общую библиотеку в options-stage. Этот этап не должен использоваться для выполнения какой-либо логики, скорее он устанавливает конфигурации для конвейера. Все доступные варианты и документацию можно найти здесь .

Вы можете попытаться создать этап, который просто вызывает ваш prepareStepsWrapper() и использовать блокировки , чтобы избежать выполнения других этапов до этого этапа.

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