【问题标题】:How to download a file from the jenkins job build folder如何从詹金斯作业构建文件夹下载文件
【发布时间】:2018-10-09 19:26:01
【问题描述】:

我有一个 jenkins 服务器正在运行,我需要下载一个位于 jobs/builds/buildname 文件夹中的文件。

如何从 jenkins job 下载该文件?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    如果您要按照上一篇文章的建议使用工作区,您可以在管道中访问它:

    sh "wget http://<servername:port>/job/<jobname>/ws/index.txt"
    

    或者在脚本中:

    wget http://<servername:port>/job/<jobname>/ws/index.txt
    

    index.txt 是您要下载的文件。

    【讨论】:

    • 在 linux 中可以使用,在 windows 上的 powershell 中也可以使用。
    • 不是 PIPELINE 本机命令,在 RedHat 发行版中也不是 ;)
    • @S.Spieker - 我可以使用 java 以编程方式做同样的事情吗?我想使用 java.Thanks 下载或读取 Jenkins 作业文件夹中的文件。
    【解决方案2】:

    我在云端使用基于 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生成的备份

    【讨论】:

      【解决方案3】:

      你已经得到了从工作区获取文件的答案

      http://&lt;servername:port&gt;/job/&lt;jobname&gt;/ws/filename.ext
      显然将&lt;..&gt; 中的内容替换为与您的设置相关的值,并确保匿名用户有权从工作区读取,否则您可能必须登录。

      您可以访问的唯一其他文件是从以前的作业运行中存档的文件。
      http://&lt;servername:port&gt;/job/&lt;jobname&gt;/&lt;buildnumber&gt;/artifact/filename.ext
      其中&lt;buildnumber&gt; 是您在作业构建历史中看到的构建号,或者是Eldad 提供的永久链接之一(例如lastStableBuild)。但这只能访问存档的工件。

      您不能通过 Web 界面任意访问 Jenkins 文件系统中的文件……如果它允许您这样做就不是很安全。

      【讨论】:

      【解决方案4】:

      Jenkins 作业的 build 文件夹用于记录日志和插件报告。您不需要直接访问它。

      如果必须,您可以相对于工作区访问它:$WORKSPACE/../builds/$BUILD_ID/

      您还可以将 $BUILD_ID 替换为 Jenkins 创建的链接之一:
      上次失败的构建
      上一个稳定构建
      最后成功构建
      上一个不稳定的构建
      最后不成功的构建

      我希望这会有所帮助。

      【讨论】:

      • 我无法直接访问机器。有没有办法在不使用机器上的 scp 的情况下下载文件??
      • 您可以通过 URL (http:///job//ws/) 访问工作区,但您必须将文件复制到在构建结束之前将工作区从相关构建中移出。
      【解决方案5】:

      正如其他人指出的那样,这条路径应该可以工作,我想强调“ws”是 Jenkins 中的一个目录:

      http://<servername:port>/job/<your job>/ws/<your file>
      

      【讨论】:

        【解决方案6】:

        下载包 lynx(命令行浏览器)

            $ apt-get install lynx
        

            $ yum install lynx
        

        然后使用命令

           # lynx http://<servername:port>/job/<jobname>/ws/file
        

        应用程序会询问您是否允许使用 cookie,如果有身份验证,则会将您引导至浏览器等登录页面。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-03
          • 1970-01-01
          • 2020-05-17
          • 2021-07-30
          • 1970-01-01
          • 2017-03-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多