在Jenkins构建的文件参数“帮助文本”中,
接受来自浏览器的文件提交作为生成参数。上传的文件将放置在工作区中的指定位置,然后生成可以访问和使用该位置。这对于许多情况都是有用的,例如:
提交文件的名称在与文件位置相同的环境变量中可用。例如,如果将文件位置设置为abc.zip,则${abc.zip}将为您提供从浏览器传递的原始文件名(例如my.zip)。名称将不包括目录名称部分。
文件上传是可选的。如果用户选择不上传任何内容,Jenkins只需跳过这个参数,就不会放置任何内容(但它也不会删除工作区中已经存在的任何内容)。
和“文件位置”
指定工作空间中的相对位置,将上传的文件放在其中(例如,"jaxb-ri/data.zip")
简单上传压缩文件的每个例子-似乎没有上传文件在任何地方-既不是在工作区,也不是在某个临时目录下。如何定位文件&/利用它?
以下是文件上传尝试的简单管道。
properties(
[
parameters(
[ file(name: "file1", file: "file1.zip", description: 'Choose path to upload file1.zip from local system.') ]
)
]
)
node {
stage("Upload File") {
sh '''
ls -lrt
ls ${file1.zip} ${file1} file1.zip
'''
}
}
以及控制台日志中观察到的运行中的相应错误。
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Upload File)
[Pipeline] sh
[testSh] Running shell script
+ ls -lrt
total 0
Workspacedir///testSh@tmp/durable-ba40512f/script.sh: line 4: ${file1.zip}: bad substitution
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
已经尝试了Groovy的建议(多种方法):在Jenkins中获取二进制文件或压缩上传的文件- Windows无法打开文件夹。压缩(压缩)文件夹无效。,但是没有成功。
发布于 2019-12-27 22:22:21
问题带有文件参数的Jenkins管道作业已经给出了这个问题的答案。
new hudson.FilePath(new File("file1.zip")).copyFrom(file1)
file1.delete()
https://stackoverflow.com/questions/59500141
复制相似问题