我的詹金斯管道有问题。我要执行以下操作:如果工作区中已经存在构建环境,则使用以前的环境执行(增量)构建。
如果失败,请使用干净的构建重试一次(删除以前的构建环境,然后重新构建)
我正在尝试通过以下方式做到这一点:
retry(1) {
try {
prepareEnvironment()
setupBuildEnvironment() // sets up environment if it is not present yet
runBuild()
} catch (e) {
echo 'Err: Incremental Build failed with Error: ' + e.toString()
echo ' Trying to build with a clean Workspace'
removeOldBuildEnvironment()
} finally {
cleanupEnvironment()
}
}
Run Code Online (Sandbox Code Playgroud)
当我在詹金斯(Jenkins)中运行此命令而该runBuild()
步骤失败时,我得到:
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:不允许脚本使用新的java.lang.Exception java.lang.String
我认为问题是retry(1)块中的try / catch。任何建议如何解决
我也尝试过,没有重试。在这里我有一个问题,如果
bat "..."
Run Code Online (Sandbox Code Playgroud)
runBuild()中的step返回一个异常,即使我捕获到该异常并且干净的构建成功,管道Stage也被标记为fail。
有什么建议么?