我有一个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退出脚本?
答案 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包住。