首页 > 解决方案 > Jenkins通过构建工作分离工作区

问题描述

我们有一个工作,它在构建期间在工作区文件夹中生成一些 html 文件。我们的目标是在构建完成后获取这些文件并压缩它们。

工作的第一步是清理工作空间——确保没有来自以前构建的文件。

当我们开始构建并且有人开始单独构建时,我们的问题就出现了 - 工作区被擦除了。这两个版本都在生成这些 html,并且内容从不同的版本中混合在一起。

如果有人知道我如何将每个构建分开以拥有自己的工作空间,我将非常乐意分享它。我希望这仅适用于一项工作。其他工作必须保留在共享工作区中。

标签: jenkinsjenkins-pipeline

解决方案


这是我一直在寻找的解决方案:

pipeline {
    agent {
        node {
            label 'master'
            customWorkspace "${JENKINS_HOME}/workspace/${JOB_NAME}/${BUILD_NUMBER}"
        }
    }
}

最后,我使用清理来删除每个构建生成的文件夹,如下所示:

post {
    cleanup {
        deleteDir()
        dir("${workspace}@tmp") {
            deleteDir()
        }
        dir("${workspace}@script") {
            deleteDir()
        }
    }
}
谢谢你们

推荐阅读