Quelqu'un peut-il suggérer s'il existe un moyen d'exécuter Jacoco dans un pipeline Jenkins? J'ai téléchargé le plug-in mais je ne trouve pas l'option pour Jacoco dans la "Syntaxe du pipeline", qui est l'aide du script Pipeline.
A référé cette URL: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin qui n'a aucune information pour un pipeline jenkins jacoco
Après avoir essayé de parcourir Internet pour trouver un exemple simple expliquant comment faire cela, j’ai finalement trouvé l’outil "step" dans notre instance Jenkins.
Il sait comment générer des extraits de code de pipeline Jenkinsfile en fonction des plug-ins et des modules que vous avez installés.
En résumé, l'entrée de base ressemble à ceci:
stage('Build') {
steps {
sh './jenkins_build.sh'
junit '*/build/test-results/*.xml'
step( [ $class: 'JacocoPublisher' ] )
}
}
La documentation de jenkins nécessite vraiment une mise à jour avec des exemples one-liner.
La configuration de l'étape de pipeline jacoco utilise ce format:
step([$class: 'JacocoPublisher',
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/Java',
exclusionPattern: 'src/test*'
])
Ou avec une syntaxe plus simple pour le pipeline déclaratif:
jacoco(
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/Java',
exclusionPattern: 'src/test*'
)
Vous pouvez trouver plus d'options dans le Référence des étapes du pipeline JaCoCo
À partir du plugin Jacoco 2.2.1, vous pouvez maintenant utiliser jacoco(execPattern: 'target/jacoco.exec')
Personnellement, j'ai plusieurs fichiers Jacoco pour différentes exécutions et je voulais prendre en charge les répertoires Maven et Gradle (donc les répertoires build/
Et target/
), Et j'utilise donc jacoco(execPattern: '**/*.exec')
.
Référence: https://github.com/jenkinsci/jacoco-plugin/pull/8
Si vous regardez un liste des plugins compatibles avec pipeline , vous constaterez que Jenkins JaCoCo Plugin a été rendu compatible , mais sans aucune mise à jour de la documentation, sauf entrée dans changelog :
Version 2.1.0 (29 septembre 2016)
JENKINS-27120 Ajout du support de flux de travail pour l'éditeur JaCoCo
probablement parce que son utilisation est simple et semblable à celle de nombreuses autres étapes:
step([$class: 'JacocoPublisher', ...])
La meilleure façon d’utiliser le plugin de Jacoco jenkins est de générer l’exécutable ( jacoco.exec ) dans l'application, puis en pointant l'emplacement de ce fichier dans le pipeline. Bien que pour un projet multi-module, la configuration serait légèrement différente, voir: Couverture de code Jacoco pour un projet multi-module maven
Le pipeline Jenkins ressemblerait à ceci:
jacoco(
execPattern: '**/path_to_file/jacoco.exec',
classPattern: '**/coverage/**',
sourcePattern: '**/coverage/**',
inclusionPattern: '**/*.class'
)