使用:
詹金斯:2.7.2
包云插件:1.11
在 packagecloud.io 站点创建了一个新的试用帐户,创建了一个新的私有存储库(URL 仅供参考:https ://packagecloud.io/arunsangal/deb_stuff )。
根据文档,我在packagecloud.io新域下创建了一个新的 Jenkins 凭证。然后,在 Jenkins packagecloud.io 域凭据中,我创建了一个新用户 ( arunsangal ) 并提供了密码值(即我获得 packagecloud.io 站点的生成的 API 令牌)并根据此插件的文档对其进行配置。
接下来,我创建了一个 Jenkins 作业,它正在成功创建一个 .deb 包文件。这是文件,我想在这里上传到 packagecloud.io 私有存储库中的私有存储库:https ://packagecloud.io/arunsangal/deb_stuff
在作业中,我看到我的 .deb 文件已成功生成。在构建后操作中,我使用指纹选项来查找/指纹我的 .deb 文件(即 Glob 模式:deb-builder/ .deb*)。
在 Jenkins 作业的 build# 页面上,当我单击See Fingerprints链接(Jenkins 作业的左侧区域)时,它成功显示对于给定的 build#,它具有有效的 .deb 文件。
但是将相同的工件推送到 packagecloud的构建后操作/步骤不起作用。出于某种原因,它试图在我的 Jenkins 作业的工作区的根目录中找到该文件(即使我在指纹识别步骤中提到 .deb 文件位于“deb-builder”文件夹下)。
收到此错误消息:
06:03:36 Recording fingerprints
06:03:37 2017-02-22T06:03:37.789+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Verbose Logging Enabled
06:03:37 2017-02-22T06:03:37.790+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Build Status: SUCCESS
06:03:37 2017-02-22T06:03:37.794+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Job configured with: { repo: deb_stuff, distro: 20, username: arunsangal }
06:03:37 2017-02-22T06:03:37.795+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Fingerprinting: found 1 fingerprints
06:03:37 2017-02-22T06:03:37.799+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Finding valid Packages (findValidPackages)
06:03:37 2017-02-22T06:03:37.800+0000 [org.jenkinsci.plugins.packagecloud.ArtifactPublisher] Processing: wfcli_5.0.10-22_amd64.deb
06:03:37 ERROR: Step ‘Push to packagecloud.io’ aborted due to exception:
06:03:37 java.io.FileNotFoundException: /var/lib/jenkins/workspace/Dummy_create_wfcli_deb_package/wfcli_5.0.10-22_amd64.deb (No such file or directory)
06:03:37 at java.io.FileInputStream.open(Native Method)
06:03:37 at java.io.FileInputStream.<init>(FileInputStream.java:146)
06:03:37 at hudson.FilePath.read(FilePath.java:1779)
06:03:37 at org.jenkinsci.plugins.packagecloud.ArtifactPublisher.findValidPackages(ArtifactPublisher.java:303)
06:03:37 at org.jenkinsci.plugins.packagecloud.ArtifactPublisher.perform(ArtifactPublisher.java:211)
06:03:37 at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
06:03:37 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
06:03:37 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
06:03:37 at hudson.model.Build$BuildExecution.post2(Build.java:185)
06:03:37 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
06:03:37 at hudson.model.Run.execute(Run.java:1766)
06:03:37 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
06:03:37 at hudson.model.ResourceController.execute(ResourceController.java:98)
06:03:37 at hudson.model.Executor.run(Executor.java:410)
看起来,插件构建后步骤没有查看正确的位置(或无法找到正确的路径)来查找指纹步骤成功找到的包/工件(根据上述标准输出)。
在 Github:https://github.com/jenkinsci/packagecloud-plugin,似乎有关文件是: packagecloud-plugin/src/main/java/org/jenkinsci/plugins/packagecloud/ArtifactPublisher.java
根据上面的输出,packagecloud post-build 步骤正在尝试在以下/var/lib/jenkins/workspace/Dummy_create_wfcli_deb_package/wfcli_5.0.10-22_amd64.deb
位置找到 .deb 文件:尽管该文件实际存在于:/var/lib/jenkins/workspace/Dummy_create_wfcli_deb_package/deb-builder/wfcli_5.0.10-22_amd64.deb