jon完成后,我正在使用“工作区清理插件”来清理工作区。但是@tmp目录仍然没有删除。
我们可以使用管道脚本删除此@tmp文件夹。
就我在Jira中所见,这似乎是一个已知问题:
答案 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
}