Jenkins + Gradle + Artifactory:无法读取生成的构建信息 [英] Jenkins + Gradle + Artifactory: Couldn't read generated build info
问题描述
我正在关注在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
}
谢谢@ 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屋!