Jenkins共享库实践
共享库这并不是一个全新的概念,其实在编程语言Python中,我们可以将Python代码写到一个文件中,当代码数量增加,我们可以将代码打包成模块然后再以import的方式使用此模块中的方法。
在Jenkins中使用Groovy语法,共享库中存储的每个文件都是一个groovy的类,每个文件(类)中包含一个或多个方法。每个方法包含groovy语句块。
创建共享库,共享库的目的就是将一些反复使用的模块进行封装,比如拉取代码模块,邮件通知模块,这...
/
529 次浏览/
系统运维
SonarQube 简介
SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支和拉取请求的持续代码检查。
Code Quality and Code Security | SonarQube
可以对各种语言,几乎常用的主流语言都是支持的,所以一说到代码扫描就会学到sonaqube
开发人员在IDE开发代码,可以安装SonarLint插件进行提交前代码扫描,当开发人员...
/
598 次浏览/
系统运维
在线安装或者手动上传插件
在线安装:操作如下图
[root@tools1 ~]# docker restart fe5f51e8655f
fe5f51e8655f
#下载的插件的位置
[root@tools1 ~]# cd /data/cicd/
[root@tools1 cicd]# ls
nexus3 sonarqube
[root@tools1 cicd]# cd sonarqube/
[root@tools1 sonarqube]# ls
sonarqu...
/
727 次浏览/
系统运维
配置好sonar的服务端后,接下来就要使用sonar检测我们的代码了,sonar主要是借助客户端检测工具来检测代码,所以要使用sonar就必须先在我们本地配置好客户端检测工具。 客户端可以通过IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式进行扫描分析。
常用的有扫描器有Sonar-Scanner和Sonar-Runner,使用起来都差不多。这里我使用Sonar-Scanner来作为检测客户端。
之前sonar的环境ok了,一个son...
/
730 次浏览/
系统运维
Web前端项目扫描
[root@jenkins-master devops-web-service-master]# ls
build index.html Jenkinsfile1 package-lock.json src
config Jenkinsfile package.json README.md static
[root@jenkins-master devops-web-service-master]# npm in...
/
660 次浏览/
系统运维
CI流水线集成
shell 命令行方式
流水线中添加代码扫描阶段(如果觉得下面参数太多,可以在项目里面加上sonar的配置参数文件)
def buildTools = ["maven": "/usr/local/apache-maven-3.8.1",
"sonar": "/usr/local/sonar-scanner-4.6.0.2311-linux"]
pipeline{
agent {label "buil...
/
611 次浏览/
系统运维
规则的禁用与启用
目的: 掌握默认规则中的一部分规则如何激活和禁用。(一个项目里面有500多个规则,但是有一部分规则不想去使用,觉得没用。那么自己怎么创建一个规则集)
进入质量配置页面, 可以看到所有的语言规则配置。在这里可以看到规则的使用情况。
现在要去基于内置的规则创建一个自己的规则再去定义
现在创建自己的规则,创建新的规则集
活动这里就是上线,这里可以分配级别,激活或者下线规则。(活动/挂起)...
/
572 次浏览/
系统运维
质量阈的配置
目的: 适用于以质量门禁作为交付关卡。
质量阈的好处就是在扫描的时候会挨个对条件进行判断 (质量域正常和错误)...
/
679 次浏览/
系统运维
这个覆盖率不是sonar直接给我们生成的,而是根据项目覆盖率工具,自己生成报告,比如jacoco。
找一个具有大量单元测试的项目, 然后集成jacoco插件,生成覆盖率报告,最后由sonar收集。
Maven集成Jacoco
添加jacoco-maven-plugin 和junit插件。
运行完jacoco之后会生成这个文件,sonar扫描的时候会读取这个文件
target/jacoco.exec
添加jacoco插件的依赖以及junit的依赖 ...
/
645 次浏览/
系统运维
1.什么是全链路监控?
在分布式微服务架构中,系统为了接收并处理一个前端用户请求,需要让多个微服务应用协同工作,其中的每一个微服务应用都可以用不同的编程语言构建,由不同的团队开发,并可以通过多个对等的应用实例实现水平扩展,甚至分布在横跨多个数据中心的数千台服务器上。单个用户请求会引发不同应用之间产生一串顺序性的调用关系,如果要对这些调用关系进行监控,了解每个应用如何调用,这就产生了全链路监控。
不同的微服务项目之...
/
557 次浏览/
系统运维