Jenkins 作业通过构建分离工作区

air*_*ata 1 jenkins jenkins-pipeline

我们有一项工作,在构建过程中在工作区文件夹中生成一些 html 文件。我们的目标是在构建完成后获取这些文件并对其进行压缩。

该工作的第一步是清理工作区 - 确保不存在以前版本中的文件。

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

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

air*_*ata 5

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

pipeline {
    agent {
        node {
            label 'master'
            customWorkspace "${JENKINS_HOME}/workspace/${JOB_NAME}/${BUILD_NUMBER}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

post {
    cleanup {
        deleteDir()
        dir("${workspace}@tmp") {
            deleteDir()
        }
        dir("${workspace}@script") {
            deleteDir()
        }
    }
}
Run Code Online (Sandbox Code Playgroud) 谢谢你们