Groovy如何处理失败的库导入

时间:2018-10-03 21:36:55

标签: jenkins groovy jenkins-pipeline

我有一个Jenkinsfile,它总是由两个webhook来运行,一个针对env A,一个针对env B。

保证在env A中总是会失败。对于env A中不存在的库,有一个@Library

Jenkinsfile在环境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

当lib不可用时,如何以代码0退出脚本?

1 个答案:

答案 0 :(得分:0)

使用所谓的“动态检索”(而不是使用在“系统”级别中声明的库)(有关完整说明,请参见https://jenkins.io/doc/book/pipeline/shared-libraries/

  

库标识符:“ custom-lib @ master”,检索器:modernSCM(
  [$ class:'GitSCMSource',远程:   'git@git.mycorp.com:my-jenkins-utils.git',certificateId:   'my-private-key'])

用try-catch包住。