如何通过URL访问lastSuccessfulBuild中Jenkins创建的工件?

时间:2016-10-10 14:06:45

标签: jenkins jenkins-pipeline artifacts

我正在使用Jenkins管道构建Android应用程序。

当构建成功完成时,它会创建一个.apk文件。

我希望QA团队的成员能够在上传Google商店之前下载此文件并测试应用程序,因此我希望这些用户(可以访问Jenkins服务器)能够通过詹金斯服务器上的URL如in this SO question所示,但由于某种原因,我用来尝试下载工件的URL一直给我404错误。

这些是我试图访问的链接,但无济于事:

https://company-ci-server.company.net/job/Itai_repos/job/Product-Android/job/develop/lastSuccessfulBuild/build/outputs/apk/Company-production-release.apk

https://company-ci-server.company.net/job/Itai_repos/job/Product-Android/job/develop/lastSuccessfulBuild/artifact/product-production-release.apk

作业被配置为多分支,这意味着Jenkins正在GitHub中观察项目,索引所有分支,并且每当提交作业开始时...这就是为什么链接如此长,你想知道。 ..

那么我做错了什么?为什么我不能通过URL访问工件?

2 个答案:

答案 0 :(得分:7)

如果它对任何人感兴趣,因为我自己编写管道并且我没有使用GUI来配置我的工作,那么我就错过了管道中实际存档的部分,这里'相关缺失的代码:

step([$class: 'ArtifactArchiver', artifacts: '**/build/outputs/apk/*.apk', fingerprint: false])

此步骤告诉Jenkins在给定路径中查找apk文件。 然后Jenkins发布apk,你可以通过URL访问它:

https://ci-server.company.net/job/Itai_repos/job/Products-Android/job/develop/<BUILD_NUMBER>/artifact/

由于

答案 1 :(得分:1)

作为构建过程中的构建后步骤添加任务“归档工件”。 并指定要访问的文件。

在项目仪表板页面上,您将看到“最近成功的工件”

的链接

修改:我们添加了部分配置:

<hudson.tasks.ArtifactArchiver>
    <artifacts>
       bin\file1Setup.exe, bin\file2Setup.exe
    </artifacts>
    <allowEmptyArchive>false</allowEmptyArchive>
    <onlyIfSuccessful>false</onlyIfSuccessful>
    <fingerprint>false</fingerprint>
    <defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>