使用:
詹金斯: 2.7.2
PackageCloud Plugin: 1.11
在packagecloud.io网站上创建了一个新的试用帐户,创建了一个新的私有存储库(URL只是fyr:https://packagecloud.io/arunsangal/deb_stuff)。
根据文档,我在 packagecloud.io 新域下创建了一个新的Jenkins凭据。然后,在Jenkins packagecloud.io域名凭证中,我创建了一个新用户( arunsangal )并提供了密码值(即生成的API令牌,我得到了packagecloud.io站点),并根据关于这个插件的文档。
接下来,我创建了一个Jenkins作业,该作业正在成功创建.deb包文件。这是我要在packagecloud.io私有存储库中上传到私有存储库的文件:https://packagecloud.io/arunsangal/deb_stuff
在作业中,我看到我的.deb文件已成功生成。 在构建后的操作中,我使用指纹识别选项查找/指纹我的.deb文件(即Glob模式: deb-builder / .deb *)。
在Jenkins作业的构建#页面上,它成功显示对于给定的构建#,当我点击查看指纹链接时,它具有有效的.deb文件(左侧)詹金斯工作的手边区域。)
但是,用于将同一工件推送到packagecloud的构建后操作/步骤不起作用。出于某种原因,它试图在我的Jenkins作业的工作空间的根目录中找到该文件(尽管我在指纹识别步骤中提到.deb文件位于" deb-builder&#34之下) ;文件夹)。
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)
看起来,插件构建后步骤没有查找正确的位置(或能够找到正确的路径)来查找成功找到指纹步骤的包/工件(按照上面提到的std输出)。 / p>
在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
答案 0 :(得分:0)
截至目前,这个Jenkins PackageCloud插件期望仅从Jenkins作业的工作空间/根位置挑选文件。
因此,在我的情况下在给定的deb-builder
文件夹中创建包之后,我必须通过执行以下操作将所有这些* .deb文件从deb-builder复制到JOB的WORKSPACE位置:< / p>
cp deb-builder/*.deb ..
接下来,在指纹识别中,我将模式更改为*.deb
(而不是deb-builder/*.deb
)
在此之后,帖子构建操作Push To pacakgecloud.io
操作按预期工作。
另请参阅相关问题(我在解决此帖后看到的):Jenkins packagecloud plugin - upload of a package ex .deb failed if it already exist
答案 1 :(得分:0)
jenkins / packagecloud插件作者 -
抱歉,您遇到了这些问题!该插件应该只“看到”与指纹图案匹配的文件,所以只需更改它就足够了(除非是一个bug)。