J'utilise "Workspace Cleanup Plugin" pour nettoyer l'espace de travail une fois le travail terminé. Mais le répertoire @tmp
n'est toujours pas supprimé.
De toute façon, nous pouvons supprimer ce dossier @tmp
à l'aide d'un script de pipeline.
Cela ressemble à un problème connu d'après ce que je vois dans Jira:
4 Réponses :
Vous pouvez utiliser deleteDir () comme dernière étape du pipeline Jenkinsfile (en supposant que vous n'ayez pas changé le répertoire de travail).
J'ai utilisé un espace de travail personnalisé dans Jenkins, puis deleteDir () ne supprimera pas le dossier @tmp.
Donc, pour supprimer @tmp avec l'utilisation de l'espace de travail suivant
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() } } } }
Cet extrait fonctionnera également pour l'espace de travail par défaut.
p>
L'extrait de code suivant fonctionne très bien.
//@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" } } }
Ce n'est pas une réponse directe à votre question, mais cela pourrait aider quelqu'un.
Si vous utilisez dir Étape du pipeline Jenkins pour changer de répertoire, alors vous verrez ces dossiers @tmp
se créer. À la place, utilisez la commande cd
et ils ne seront pas créés en premier lieu.
Donc, au lieu de,
def myFunc(String folder) { bat "cd ${folder}" // work }
Faites ceci.
def myFunc(String folder) { dir(folder) { // work } }
Vous n'avez pas réussi à indiquer où vous voyez ce répertoire. Lorsque Project @ tmp est trouvé sur le jenkins MASTER, il est utilisé si vous rejouez le pipeline de projet. La suppression du répertoire permettrait d'économiser de l'espace, mais entraînerait une perte fonctionnelle.