如何通过 URL 访问 Jenkins 在 lastSuccessfulBuild 中创建的工件?
How can I access artifacts created by Jenkins in the lastSuccessfulBuild through a URL?
我正在使用 Jenkins 管道构建 Android 应用程序。
构建成功完成后,它会创建一个 .apk 文件。
我希望 QA 团队的成员能够下载此文件并在上传它之前测试应用程序 Google 商店,所以我希望这些用户(有权访问 Jenkins 服务器)能够通过 Jenkins 服务器上的 URL 访问工件,如图 in this SO question 但出于某种原因,我用来尝试下载工件的 URL 一直给我 404 错误。
这些是我正在尝试访问但无济于事的 link:
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 中的项目,为所有分支编制索引,每当发生提交时,作业就会开始...这就是为什么 link 太长了,以防你想知道...
那我做错了什么?为什么我不能通过 URL 访问工件?
作为构建过程中的 post-构建步骤 添加任务 "Archive the artifacts"。
并指定要访问的文件。
在您的项目仪表板页面上,您将看到 link 到 "Last successful artifacts"
编辑:我们添加的部分配置:
<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>
如果有人感兴趣,因为我自己编写管道并且我没有使用 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/
谢谢
我正在使用 Jenkins 管道构建 Android 应用程序。
构建成功完成后,它会创建一个 .apk 文件。
我希望 QA 团队的成员能够下载此文件并在上传它之前测试应用程序 Google 商店,所以我希望这些用户(有权访问 Jenkins 服务器)能够通过 Jenkins 服务器上的 URL 访问工件,如图 in this SO question 但出于某种原因,我用来尝试下载工件的 URL 一直给我 404 错误。
这些是我正在尝试访问但无济于事的 link:
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 中的项目,为所有分支编制索引,每当发生提交时,作业就会开始...这就是为什么 link 太长了,以防你想知道...
那我做错了什么?为什么我不能通过 URL 访问工件?
作为构建过程中的 post-构建步骤 添加任务 "Archive the artifacts"。 并指定要访问的文件。
在您的项目仪表板页面上,您将看到 link 到 "Last successful artifacts"
编辑:我们添加的部分配置:
<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>
如果有人感兴趣,因为我自己编写管道并且我没有使用 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/
谢谢