我有几个并行的阶段共享一个节点,并在完成后清理它们的工作空间。我的问题是,当阶段失败时,我希望不清理工作空间,以便可以对其进行检查。
所发生的是:
如何避免这种情况?
答案 0 :(得分:1)
詹金斯对此有一个后阶段。根据流水线的结果,执行不同的代码分支。因此,假设您的管道成功,那么将调用清理插件的清理脚本。如果管道失败,则可以存档结果或直接跳过工作空间的清理。
查看詹金官方文档以获取更多信息(搜索“ post”):https://jenkins.io/doc/book/pipeline/syntax/
pipeline {
agent any
stages {
stage('PostExample') {
steps {
// do something here
}
}
}
post { //Is called after your stage
failure {
//pipeline failed - do not clear workspace
}
success {
//pipeline is successful - clear workspace
}
}
}
另一方面,如果您想保留结果,则可以考虑将其归档,以便它们独立于您的工作空间,因为您可以随时从jenkins gui(
答案 1 :(得分:0)
在执行詹金斯文件时,您只需要使用finally(无论阶段输出如何,都将执行)方法:请参阅How to perform actions for failed builds in Jenkinsfile