如何避免Jenkins重用工作空间?

时间:2019-02-05 15:07:28

标签: jenkins

我有几个并行的阶段共享一个节点,并在完成后清理它们的工作空间。我的问题是,当阶段失败时,我希望不清理工作空间,以便可以对其进行检查。

所发生的是:

  1. 失败阶段失败,将工作空间留给我想要的
  2. 第二阶段重用工作空间,成功
  3. 第二阶段清理工作区

如何避免这种情况?

2 个答案:

答案 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