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.
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. –