You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline中CleanWs()按指定模式清理文件失败的求助

问题分析与解决方案

首先明确:cleanWs 并不适合你的需求,原因如下:

  1. cleanWs 的设计目标是清理整个工作区,默认会删除工作区内所有内容。它的 patterns 参数逻辑是:INCLUDE 表示保留匹配的文件、删除其余所有;EXCLUDE 表示删除除匹配文件外的所有——和你要「仅删除特定子文件夹内指定文件」的需求完全相反。
  2. 你配置了 deleteDirs: true,这会直接删除目录本身,而非仅删除目录内的目标文件。
  3. 即便调整参数,cleanWs 也无法限定仅对某个子文件夹执行操作,它的匹配规则是针对整个工作区根目录的。

推荐替代方案

方案1:用命令行直接删除(最通用,无需额外插件)

根据你的运行环境选择对应的步骤:

  • Linux/macOS 环境:
sh '''
# 直接进入目标目录删除指定文件
cd "${WORKSPACE}/some_folders/folder_to_clean" && rm -f *.png *.log *.lock Result_*.tsv report.html
'''

或者用更安全的 find 命令(无需切换目录):

sh '''
find "${WORKSPACE}/some_folders/folder_to_clean" -maxdepth 1 -type f \
  \( -name "*.png" -o -name "*.log" -o -name "*.lock" -o -name "Result_*.tsv" -o -name "report.html" \) \
  -delete
'''
  • Windows 环境:
bat '''
del /Q "%WORKSPACE%\\some_folders\\folder_to_clean\\*.png"
del /Q "%WORKSPACE%\\some_folders\\folder_to_clean\\*.log"
del /Q "%WORKSPACE%\\some_folders\\folder_to_clean\\*.lock"
del /Q "%WORKSPACE%\\some_folders\\folder_to_clean\\Result_*.tsv"
del /Q "%WORKSPACE%\\some_folders\\folder_to_clean\\report.html"
'''

方案2:使用 File Operations 插件(需提前安装)

如果你的 Jenkins 安装了 File Operations 插件,可以用更直观的 Pipeline 语法实现:

fileOperations([
  deleteFileOperation(
    includes: '*.png,*.log,*.lock,Result_*.tsv,report.html',
    directory: "${WORKSPACE}/some_folders/folder_to_clean",
    quiet: true // 避免无匹配文件时报错
  )
])

内容的提问来源于stack exchange,提问作者badbadllama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:45:15