在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查
不乱于心,不困于情,不畏将来,不念过往,如此安好 ——《不宠无惊过一生》丰子恺
概述
关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章:
本文主要记录一下如何在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查,本文内容主要参考下面的官方文档。
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/
jenkins 集成 sonarqube
1. 在 jenkins 中安装 sonarqube 插件
【系统管理】-> 【插件管理】-> 【可选插件】搜索 sonarqube ,选择插件 【
SonarQube Scanner for Jenkins】

2. 配置 sonarqube server
【系统管理】-> 【系统配置】-> 【SonarQube servers】
点击 Add SonarQube 需要配置一些几个参数:

Name:sonarqube server的名字,在jenkinsfile中的withSonarQubeEnv('name')可以使用这里配置的名字Server URL:连接 sonarqube 服务器的地址,由于这里将 jenkins 和 sonarqube 都部署在k8s的同一个命名空间中,所以可以使用 serviceName 直接通信。但是存在一个问题,这配置的serviceName只能在k8s集群内部访问,如果需要从jenkins页面跳转到sonarqube的控制台,那么这里需要配置一个sonarqube的外网地址。Server authentication token:这个token需要在sonarqube的控制台上面获取,如下图所示:
选择我的账号,如下图所示:

生成令牌,如下图所示:

在 jenkins 中添加凭据,如下图所示:

3. 在 jenkinsfile 中配置 sonarqube
sonarqube 为 jenkinsfile 提供了一个 withSonarQubeEnv 块,它允许我们直接与 sonarqube 服务器交互。我们可以在withSonarQubeEnv(name) 中填写前面 jenkins 中配置的 sonarqube server 的名字,它将会使用在 jenkins 中配置的 sonarqube 的连接地址和认证信息。使用示例如下:
stage('SonarQube analysis') {
// 这里是判断环境变量 CHECK 为 true 的时候才执行后面的步骤
when {
environment name: 'CHECK', value: 'true'
}
steps{
// 这里的 sonarqube 就是我们前面配置的名称
withSonarQubeEnv('sonarqube') { // Will pick the global server connection you have configured
// 这里使用名字叫做maven的容器运行
container("maven") {
sh 'mvn sonar:sonar'
}
}
}
}
参考文档:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/
在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查的更多相关文章
- jenkins集成sonarQube实现代码质量检查
1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误.漏洞和代码异味.它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查. 其工作流程如下: ...
- SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)
[前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目.目录如下: SonarQube系列一.Linux安装与部署 SonarQube系列二.分析 ...
- Jenkins系列——使用SonarQube进行代码质量检查
1.目标 之前已经写过一篇关于Jenkins和SonarQube的一篇博客<jenkins集成sonar>,本文在参考前文的基础上,做了详细的补充. 使用SonarQube进行代码质量检查 ...
- jenkins集成sonarqube代码审核
目前在持续集成领域,除了后起之秀travis ci,在老牌工具中,最著名的还是非jenkins莫属.本篇文章简单的说一声jenkins与sonarqube的集成来实现代码的静态审核. 在这里不详细罗列 ...
- Jenkins集成SonarQube遇到的报错
Jenkins集成Sonar过程中遇到的报错 1.jenkins中无法添加sonarqube的token凭证 因为添加的凭证类型错误,所以无法添加token,类型应该选择"Secret te ...
- Jenkins集成SonarQube
sonar安装配置 准备软件包 安装 mysql5.6+ 创建数据库sonar,字符集编码utf8 新建用户如heboan 因为sonarqube不能使用root用户运行 调整系统参数,/etc/se ...
- 在K8S中安装jenkins
以 NFS 为存储卷的示例,将在 NFS 存储卷上创建 Jenkins 目录,然后创建 NFS 类型的 PV.PVC. 1.NFS 存储卷创建 Jenkins 目录 进入 NFS Server 服务器 ...
- jenkins的sonarqube之代码检测的两种方法
#:sonarqube下载地址,我们安装6.7 高版本已经不支持MySQL和Mariadb(最小3G内存) https://www.sonarqube.org/downloads/ #:安装文档 h ...
- Jenkins 集成 SonarQube Scanner
1. 安装Jenkins 下载安装包,这里我们下载war包 https://jenkins.io/download/ 运行jenkins.war的方式有两种: 第一种:将其放到tomcat中运行( ...
随机推荐
- others_babystack
一道泄露canary+rop常规的题. 这道题让我学习到了,原来canary的最后一位是\x00,又因为是小端存储,所以在内存中我位置是在开头的. 来,下载文件检查一下保护. 开启了canary和nx ...
- Mac brew安装MySQL8.0.18后忘记密码(重置密码篇)
前要:MySQL8后密码要求很高,要有大小写字母和数字特殊字符,导致自己忘记以前配置的密码 一.跳过mysql的密码认证,修改配置文件my.cnf $ ls /usr/local/etc/my.cnf ...
- Google Earth Engine 批量点击RUN任务,批量取消正在上传的任务
本文内容参考自: https://blog.csdn.net/qq_21567935/article/details/89061114 https://blog.csdn.net/qq_2156793 ...
- JS判断是否为“YYYYMMDD”式的日期
function isDate8(sDate) { if (!/^[0-9]{8}$/.test(sDate)) { return false; } var year, month, day; yea ...
- SpringBoot整合Swagger框架 ,并设置接口请求头token默认值
引入maven依赖 <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> &l ...
- 【LeetCode】886. Possible Bipartition 解题报告(Python)
[LeetCode]886. Possible Bipartition 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu ...
- 【剑指Offer】序列化二叉树 解题报告(Python)
[剑指Offer]序列化二叉树 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题目 ...
- Shortest Path(hdu5636)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- Now冥想:崩溃服务和性能服务助力提升应用质量
想就像心灵的"健身房",当遇到失眠或情绪问题时,我们可以通过冥想,抚平情绪波澜,享受放松时刻.<Now冥想>正是一款专注冥想与心理健康的应用.它基于国际先进的正念冥想理 ...
- HDU 6470:Count(矩阵快速幂)
Count Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...