Groovy, как справиться с неудачным импортом библиотеки - PullRequest
0 голосов
/ 04 октября 2018

У меня есть Jenkinsfile, который всегда запускается двумя веб-крючками, один для env A и один для env B.

В env A гарантированно всегда будет сбой. Для библиотеки есть @Libraryкоторого нет в env A.

Jenkinsfile прекрасно работает в env B.

Вот что я хочу:

try {
    @Libray('my-library')
}
catch (whatevs) {
    println "whoops, I'm running in the wrong environment! my-library is unavailable."
    System.exit(0)
}

Но это не работает, этопохоже, что импорт проверяется во время компиляции:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: Loading libraries failed

Как мне выйти из сценария с кодом 0, когда библиотека недоступна?

1 Ответ

0 голосов
/ 05 октября 2018

Вместо использования библиотеки, которая объявлена ​​на уровне «системы», используется так называемый «Динамический поиск» (полное описание см. В https://jenkins.io/doc/book/pipeline/shared-libraries/):

идентификатор библиотеки: 'custom-lib @ master', retriever: modernSCM (
[$ class: 'GitSCMSource', remote: 'git@git.mycorp.com: my-jenkins-utils.git', credentialsId: 'my-private-key '])

, завернутый в try-catch.

...