Jenkins + Gradle + Artifactory:无法读取生成的构建信息 [英] Jenkins + Gradle + Artifactory: Couldn't read generated build info

查看:624
本文介绍了Jenkins + Gradle + Artifactory:无法读取生成的构建信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在关注在GitHub上发布的示例:

我试图用Jenkins Pipeline将我的工件推送到Artifactory,



我的Jenkins管道脚本:
$ b $ pre $ stage('执行Gradle发布'){

// ssh-代理执行GIT推送(在发布时标记分支时)
sshagent([git_credential]){
sh./gradlew clean release unSnapshotVersion -Prelease.useAutomaticVersion = true -Prelease.releaseVersion = $ { release_version} -Prelease.newVersion = $ {development_version}
}

//创建一个Artifactory服务器实例
def server = Artifactory.server('my-artifactory')

//创建并设置一个Artifactory Gradle构建实例:
def rtGradle = Artifactory.newGradleBuild()
rtGradle.resolver服务器:server,repo:'libs-release'
rtGradle.deployer服务器:服务器,repo:'libs-release-local'

//使用Gradle Wrapper
rtGradle.useWrapper = true

//创建buildinfo
def buildInfo = Artifactory.newBuildInfo()
buildInfo.env.capture = true
buildInfo.env.filter.addInclude(*)

//运行Gradle:
rtGradle.run rootDir:./,buildFile:'build.gradle' ,任务:'clean artifactoryPublish',buildInfo:buildInfo

//将构建信息发布到Artifactory:
server.publishBuildInfo buildInfo

}

我的Gradle文件很轻,我只是使用插件

在执行管道时,它会执行gradle release。以下信息失败:

 :artifactoryPublish 

建立成功

总计时间:17.451秒
错误:无法读取生成的生成信息:/tmp/generated.build.info4898776990575217114.json
[Pipeline]}
[Pipeline] // stage
[Pipeline]}
[Pipeline] //节点
[管道]管道终点
hudson.model.Run $ RunnerAbortedException $ b $ org.jfrog.hudson.pipeline.Utils .getGeneratedBuildInfo(Utils.java:188)
at org.jfrog.hudson.pipeline.steps.ArtifactoryGradleBuild $ Execution.run(ArtifactoryGradleBuild.java:127)
at org.jfrog.hudson.pipeline.steps .ArtifactoryGradleBuild $ Execution.run(ArtifactoryGradleBuild.java:96)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java: 40)
...
完成:FAILURE

当我检查服务器,没有这样的文件/tmp/generated.build.info4898776990575217114.json(用户当然有权写入/ tmp)。



感谢您的帮助。
$ b

这很奇怪,但我发现一些名为buildInfo2408849984051060030.properties的文件,其中包含信息。名字是不一样的,既不是格式,也不是这些文件存储在我的Jenkins机器上,而不是我的从机执行管道。

谢谢@ tamir-hadad,它确实已经在2.8.2上得到修复。


I'm trying to push my artifacts to Artifactory with Jenkins Pipeline, which call Gradle tool.

I am following the examples published on GitHub:

My Jenkins Pipeline script:

stage('Perform Gradle Release') {

    //ssh-agent required to perform GIT push (when tagging the branch on release)
    sshagent([git_credential]) {
        sh "./gradlew clean release unSnapshotVersion -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${release_version} -Prelease.newVersion=${development_version}"
    }

    // Create an Artifactory server instance
    def server = Artifactory.server('my-artifactory')

    // Create and set an Artifactory Gradle Build instance:
    def rtGradle = Artifactory.newGradleBuild()
    rtGradle.resolver server: server, repo: 'libs-release'
    rtGradle.deployer server: server, repo: 'libs-release-local'

    //Use Gradle Wrapper
    rtGradle.useWrapper = true

    //Creates buildinfo
    def buildInfo = Artifactory.newBuildInfo()
    buildInfo.env.capture = true
    buildInfo.env.filter.addInclude("*")

    // Run Gradle:
    rtGradle.run rootDir: "./", buildFile: 'build.gradle', tasks: 'clean artifactoryPublish', buildInfo: buildInfo

    // Publish the build-info to Artifactory:
    server.publishBuildInfo buildInfo

}

My Gradle file is very light, I'm just using the plugin Gradle Release Plugin to perform gradle release.

When executing the pipeline, it fails with this message:

:artifactoryPublish

BUILD SUCCESSFUL

Total time: 17.451 secs
ERROR: Couldn't read generated build info at : /tmp/generated.build.info4898776990575217114.json
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
hudson.model.Run$RunnerAbortedException
    at org.jfrog.hudson.pipeline.Utils.getGeneratedBuildInfo(Utils.java:188)
    at org.jfrog.hudson.pipeline.steps.ArtifactoryGradleBuild$Execution.run(ArtifactoryGradleBuild.java:127)
    at org.jfrog.hudson.pipeline.steps.ArtifactoryGradleBuild$Execution.run(ArtifactoryGradleBuild.java:96)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40)
...
Finished: FAILURE

When I check on the server, there is no such file /tmp/generated.build.info4898776990575217114.json (the user has of course permission to write to /tmp).

Thanks for your help.

[EDIT] It is weird, but I found some files named "buildInfo2408849984051060030.properties", containing the informations. The name is not the same, neither the format, and these files are stores on my Jenkins machine, not my slave executing the pipeline.

解决方案

Thanks @tamir-hadad, it has indeed been fixed on 2.8.2.

这篇关于Jenkins + Gradle + Artifactory:无法读取生成的构建信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆