2016-11-28 1 views
0

J'essaie de pousser mes artefacts vers Artifactory avec Jenkins Pipeline, qui appelle l'outil Gradle.Jenkins + Gradle + Artifactory: Impossible de lire les informations de construction générées

Je suis les exemples publiés sur GitHub:

Mon Jenkins scénario Pipeline:

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 

} 

Mon fichier Gradle est très léger, je utilisez simplement le plugin Gradle Release Plugin pour effectuer une libération progressive.

Lors de l'exécution du pipeline, il échoue avec ce 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 

Quand je vérifie sur le serveur, il n'y a pas de fichier /tmp/generated.build.info4898776990575217114.json (l'utilisateur a bien sûr permission d'écrire à/tmp).

Merci pour votre aide.

[EDIT] C'est bizarre, mais j'ai trouvé des fichiers nommés "buildInfo2408849984051060030.properties", contenant les informations. Le nom n'est pas le même, ni le format, et ces fichiers sont des magasins sur ma machine Jenkins, pas mon esclave qui exécute le pipeline.

+3

Jenkins Artifactory Plugin version 2.8.2 a quelques améliorations liées à votre problème. Nous avons modifié la façon dont nous enregistrons le fichier généré et nous avons ajouté des journaux plus informatifs. La validation associée peut être trouvée à https://github.com/JFrogDev/build-info/commit/9180bb9ccc31a0217ff645221bccc93d6a2f603d. –

Répondre

0

Merci @ tamir-hadad, il a en effet été corrigé sur 2.8.2.