Покрытие Jacoco в трубопроводе Дженкинс
Может ли кто-нибудь предположить, есть ли способ выполнить Якоко в трубопроводе Дженкинса? Я загрузил плагин, но у меня нет возможности для Jacoco в "Синтаксисе трубопровода", который представляет собой справку Pipeline script.
Ссылка на этот URL: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin
который не имеет информации для трубопровода jenkins jacoco
Ответы
Ответ 1
После попытки поиска в Интернете простого примера того, как это сделать, я в конце концов нашел инструмент "шаг" в нашем экземпляре Jenkins.
Он знает, как создавать фрагменты кода конвейера Jenkinsfile на основе установленных вами модулей и модулей.
Длинным и коротким является то, что основная запись выглядит так:
stage('Build') {
steps {
sh './jenkins_build.sh'
junit '*/build/test-results/*.xml'
step( [ $class: 'JacocoPublisher' ] )
}
}
Документация jenkins действительно нуждается в обновлении с некоторыми примерами с одним слоем.
![Пример из Jenkins 2.32.x]()
Ответ 2
Конфигурация шага конвейера jacoco использует этот формат:
step([$class: 'JacocoPublisher',
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/java',
exclusionPattern: 'src/test*'
])
Или с более простым синтаксисом для декларативного конвейера:
jacoco(
execPattern: 'target/*.exec',
classPattern: 'target/classes',
sourcePattern: 'src/main/java',
exclusionPattern: 'src/test*'
)
Вы можете найти больше опций в Справочнике по JaCoCo Pipeline Steps.
Ответ 3
Начиная с плагина Jacoco 2.2.1, теперь вы можете использовать jacoco(execPattern: 'target/jacoco.exec')
Лично у меня есть несколько разных файлов Jacoco для разных исполнений, и я хотел поддерживать Maven и Gradle (так что каталоги build/
и target/
), поэтому я использую jacoco(execPattern: '**/*.exec')
.
Ссылка: https://github.com/jenkinsci/jacoco-plugin/pull/83
Ответ 4
Если вы посмотрите на список плагинов, совместимых с конвейером, вы увидите, что Jenkins JaCoCo Plugin было совместимо, но без какого-либо обновления документации, кроме запись в журнал изменений:
Версия 2.1.0 (29 сентября 2016 года)
JENKINS-27120 Добавление поддержки Workflow для издателя JaCoCo
возможно потому, что его использование простое и похоже на использование многих других шагов:
step([$class: 'JacocoPublisher', ...])
Ответ 5
Лучший способ использовать плагин Jacoco jenkins - это создать исполняемый файл (jacoco.exec) в приложении, а затем указать местоположение этого файла в конвейере.
Хотя для многомодульного проекта конфигурация будет немного отличаться, см. покрытие кода Jacoco для многомодульного проекта maven
Трубопровод Дженкинса будет выглядеть так:
jacoco(
execPattern: '**/path_to_file/jacoco.exec',
classPattern: '**/coverage/**',
sourcePattern: '**/coverage/**',
inclusionPattern: '**/*.class'
)