Jenkins管道-删除@tmp文件夹

时间:2019-03-22 10:16:43

标签: jenkins jenkins-pipeline

jon完成后,我正在使用“工作区清理插件”来清理工作区。但是@tmp目录仍然没有删除。

我们可以使用管道脚本删除此@tmp文件夹。

就我在Ji​​ra中所见,这似乎是一个已知问题:

4 个答案:

答案 0 :(得分:1)

您可以使用 deleteDir()作为管道Jenkinsfile的最后一步(假设您没有更改工作目录)。

答案 1 :(得分:0)

我在Jenkins中使用了自定义工作区,然后deleteDir()不会删除@tmp文件夹。

因此要删除@tmp以及工作区,请使用以下

pipeline {
    agent {
        node {
            customWorkspace "/home/jenkins/jenkins_workspace/${JOB_NAME}_${BUILD_NUMBER}"
        }
    }
    post {
        cleanup {
            /* clean up our workspace */
            deleteDir()
            /* clean up tmp directory */
            dir("${workspace}@tmp") {
                deleteDir()
            }
            /* clean up script directory */
            dir("${workspace}@script") {
                deleteDir()
            }
        }
    }
}

此代码段也适用于默认工作空间。

答案 2 :(得分:0)

以下代码段效果很好。

//@tmp clean up
stage ('cleanup') 
{
  withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
  dir('<your directory path>') {
  sh "rm -rf <directory `enter code here`name>@tmp"
  }
  }
}

答案 3 :(得分:0)

不是您问题的直接答案,但可能会对某人有所帮助。

如果您正在使用dir Jenkins管道步骤来更改目录,则将看到已创建这些@tmp文件夹。而是使用cd命令,它们不会一开始就被创建。

所以,而不是

def myFunc(String folder) {
  dir(folder) {
   // work
  }
}

执行此操作。

def myFunc(String folder) {
  bat "cd ${folder}"
  // work
}