java - 工作服徽章显示为“未知”
问题描述
我用 Gradle 开发了一个 springboot 应用程序。我已经集成了 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
}
}
解决方案
根据工作服文档,您需要配置 CI_BRANCH 环境详细信息。
甚至在工作服 gradle plugin中也提到了它。您需要使用git
命令提取此信息并填充所需的变量。
推荐阅读
- javascript - 如何在角度 9 中使用 print.js 打印多个 PDF
- javascript - 赛普拉斯:test runner一旦测试失败就停止,即使中途测试失败,我们还能继续测试吗?
- symfony - 如何禁用 Symfony 5 类缓存以进行本地调试?
- selenium - 在 selenium 中具有多个条件的软断言
- sql - 简单的 SQL 数据透视
- python - Selenium Webdriver 和 Jupyter Notebook。find_elements_by_xpath 不在同一个单元格中工作
- python - 将数据框对象转换为 int64 时出错
- elasticsearch - 在 Linux 上增加 Elastic Search 的磁盘分配
- google-cloud-data-fusion - 如何计算 CDAP/DATA Fusion 中的行数?
- python - .Net Core 似乎以大约 1000 / 秒的速度读取 GPIO 引脚。如何走得更快?