Glu*_*ear 6 jenkins docker jenkins-pipeline
我有一个 Jenkins 管道,用于 Docker 容器中的 PHP 项目。这是我的 Jenkinsfile:
pipeline {
agent any
stages {
stage('Build') {
agent any
steps {
sh 'docker-compose up -d'
sh 'docker exec symfony composer install'
}
}
stage('Test') {
steps {
sh 'docker exec symfony php ./bin/phpunit --coverage-clover=\'reports/coverage/coverage.xml\' --coverage-html=\'reports/coverage\' --coverage-crap4j=\'reports/crap4j.xml\''
}
}
stage('Coverage') {
steps {
step([$class: 'CloverPublisher', cloverReportDir: '/reports/coverage', cloverReportFileName: 'coverage.xml'])
}
}
}
post {
cleanup {
sh 'docker-compose down -v'
cleanWs()
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行管道后,该var/lib/jenkins/workspace文件夹包含 4 个文件夹(假设我的项目名称是Foo):
这些是什么,我该如何清理它们?cleanWs除了构建后的第一个之外,不会删除任何其他内容。
编辑:这不是这个问题的重复,因为
deleteDir,在使用 Docker 容器时不推荐使用。有一个关于 deleteDir() 不删除 @tmp/@script/@... 目录的打开的Jenkins 问题。
删除这些的解决方法:
post {
always {
cleanWs()
dir("${env.WORKSPACE}@tmp") {
deleteDir()
}
dir("${env.WORKSPACE}@script") {
deleteDir()
}
dir("${env.WORKSPACE}@script@tmp") {
deleteDir()
}
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个关于描述@tmp是什么的问题的评论:
它 [@tmp 文件夹] 包含在运行时加载的任何库的内容。如果没有副本,Replay 就无法可靠地工作。
| 归档时间: |
|
| 查看次数: |
8668 次 |
| 最近记录: |