Jenkins/Cloudbees Pipeline指定单个文件存入stash失败问题排查
Jenkins Pipeline 正确Stash目标文件夹的语法
你遇到的问题核心是:你以为的File.jar是文件,但实际是文件夹,而stash指令的includes参数默认匹配文件,直接写File.jar会匹配不到任何可存储的内容,因此执行失败无报错。
针对你的需求,提供两种正确写法:
1. Stash文件夹内的所有内容(含子目录)
如果需要存储File.jar文件夹下的所有文件和子目录,使用递归匹配模式:
stage('Stash Folder Content') { steps { stash includes: 'File.jar/**', name: 'FileFolderContent' } }
**表示递归匹配目标文件夹下的所有层级内容,执行后unstash会自动重建File.jar文件夹结构并恢复内容。
2. 确认路径准确性(避免路径错误)
如果File.jar不在当前工作目录的根路径下,要填写完整相对路径,比如:
stash includes: 'subdir/File.jar/**', name: 'FileFolderContent'
可以先通过sh "find . -type d -name 'File.jar'"命令确认文件夹的准确路径,确保匹配模式正确。
补充说明
之前includes: '**'能成功,是因为该模式匹配当前目录下所有文件和文件夹,自然包含了File.jar文件夹及其内容,但这种方式会存储大量无关文件,不推荐。
内容的提问来源于stack exchange,提问作者Kira Resari
相关产品推荐
相关产品推荐

