【发布时间】:2018-10-09 19:26:01
【问题描述】:
我有一个 jenkins 服务器正在运行,我需要下载一个位于 jobs/builds/buildname 文件夹中的文件。
如何从 jenkins job 下载该文件?
【问题讨论】:
标签: jenkins
我有一个 jenkins 服务器正在运行,我需要下载一个位于 jobs/builds/buildname 文件夹中的文件。
如何从 jenkins job 下载该文件?
【问题讨论】:
标签: jenkins
如果您要按照上一篇文章的建议使用工作区,您可以在管道中访问它:
sh "wget http://<servername:port>/job/<jobname>/ws/index.txt"
或者在脚本中:
wget http://<servername:port>/job/<jobname>/ws/index.txt
index.txt 是您要下载的文件。
【讨论】:
我在云端使用基于 Unix 的开发机器和基于 Unix 的 Jenkins 机器。这意味着我可以使用SCP Command 通过 ssh 连接下载远程文件。这是我的 scp 命令的剖析:
scp -i <path/to/ssh.pem/file> <user>@<jenkins.remote.url>:<path/to/remote/file> <local/path/where/download/goes>
这也适用于目录,例如我用它来下载ThinBackup Plugin生成的备份
【讨论】:
你已经得到了从工作区获取文件的答案
http://<servername:port>/job/<jobname>/ws/filename.ext
显然将<..> 中的内容替换为与您的设置相关的值,并确保匿名用户有权从工作区读取,否则您可能必须登录。
您可以访问的唯一其他文件是从以前的作业运行中存档的文件。http://<servername:port>/job/<jobname>/<buildnumber>/artifact/filename.ext
其中<buildnumber> 是您在作业构建历史中看到的构建号,或者是Eldad 提供的永久链接之一(例如lastStableBuild)。但这只能访问存档的工件。
您不能通过 Web 界面任意访问 Jenkins 文件系统中的文件……如果它允许您这样做就不是很安全。
【讨论】:
Jenkins 作业的 build 文件夹用于记录日志和插件报告。您不需要直接访问它。
如果必须,您可以相对于工作区访问它:$WORKSPACE/../builds/$BUILD_ID/
您还可以将 $BUILD_ID 替换为 Jenkins 创建的链接之一:
上次失败的构建
上一个稳定构建
最后成功构建
上一个不稳定的构建
最后不成功的构建
我希望这会有所帮助。
【讨论】:
正如其他人指出的那样,这条路径应该可以工作,我想强调“ws”是 Jenkins 中的一个目录:
http://<servername:port>/job/<your job>/ws/<your file>
【讨论】:
下载包 lynx(命令行浏览器)
$ apt-get install lynx
或
$ yum install lynx
然后使用命令
# lynx http://<servername:port>/job/<jobname>/ws/file
应用程序会询问您是否允许使用 cookie,如果有身份验证,则会将您引导至浏览器等登录页面。
【讨论】: