Я разработал приложение Springboot с Gradle. Я интегрировал Jenkins, и теперь я пытаюсь интегрировать покрытие кода в свой проект. Для этой цели я использовал комбинезон JaCoCo с Jenkins CI.
Плагин Gradle
plugins {
id 'com.github.kt3k.coveralls' version '2.10.1'
}
jacocoTestReport {
reports {
xml.enabled = true
html.enabled = true
}
getClassDirectories().setFrom(classDirectories.files.collect {
fileTree(dir: it,
exclude: [
'**/BmsService*',
'**/BmsClientWrapper*'])
})
}
И моя работа Jenkins вызывает следующую команду тестирования JaCoCo.
sh "gradle clean test jacocoTestReport coveralls"
Моя сборка Jenkins становится успешной, и данные отправляются на https://coveralls.io успешно.
У меня такой вопрос: если я делаю сборку с функциональной ветвью (кроме master) , в coveralls.io значок не отображается должным образом и даже не отображается не может показать «совершено». Я использую GitHub, кстати.
Любая помощь будет благодарна!
Ниже приведены конвейерные работы, которые у меня есть:
stage('Git checkout') {
deleteDir()
checkout(scm)
}
stage('Build Source code') {
container('gradle-docker') {
sh 'gradle -version'
sh 'gradle clean'
sh "gradle build"
}
}
stage('Code Coverage') {
if('master'.equals(env.BRANCH_NAME)) {
def secrets = [
[$class: 'VaultSecret', path: 'secret/build/credentials', secretValues: [
[$class: 'VaultSecretValue', envVar: 'COVERALLS_REPO_TOKEN', vaultKey: 'coveralls_repo_token']
]]
]
wrap([$class: 'VaultBuildWrapper', vaultSecrets: secrets]) {
container('gradle-docker') {
sh "gradle clean test jacocoTestReport coveralls"
}
}
} else {
println 'Code Coverage is only for the master branch, Skipping for ' + env.BRANCH_NAME
}
}