2016-11-28 7 views
0

Gradle 도구를 호출하는 Jenkins Pipeline에서 Artifactory로 아티팩트를 보내려고합니다.Jenkins + Gradle + Artifactory : 생성 된 빌드 정보를 읽을 수 없습니다.

나는 GitHub의에 게시 된 예제를 다음입니다 :

내 젠킨스 파이프 라인 스크립트 :

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 

} 

내 Gradle을 파일 내가 아주 빛 플러그인을 사용하고 있습니다. Gradle Release Plugin을 눌러서 그라데이션을 해제하십시오.

는 파이프 라인을 실행하는 경우,이 메시지와 함께 실패

:

: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 

내가 서버에 확인 이러한 파일 /tmp/generated.build.info4898776990575217114.json 없다 (사용자는 물론이/tmp에 쓸 수있는 권한).

도움 주셔서 감사합니다.

[편집] 이상한데 정보가 들어있는 "buildInfo2408849984051060030.properties"라는 파일이 있습니다. 이름은 동일하지 않으며 형식도 아니며 이러한 파일은 내 Jenkins 컴퓨터에 저장되며 내 슬레이브는 파이프 라인을 실행하지 않습니다.

+3

Jenkins Artifactory Plugin 버전 2.8.2는 문제와 관련하여 약간의 개선이있었습니다. 생성 된 파일을 저장하는 방법을 변경했으며 더 많은 정보 로그를 추가했습니다. 관련 커밋은 https://github.com/JFrogDev/build-info/commit/9180bb9ccc31a0217ff645221bccc93d6a2f603d에서 확인할 수 있습니다. –

답변

0

Thanks @ tamir-hadad, 실제로 2.8.2에서 수정되었습니다.