标签:issues mat use error href 测试 target 扫码 项目
1.sonarqube质量管理
http://www.idevops.site/jenkins/pipelineintegrated/chapter04/
https://www.codenong.com/cs87706871/
2.实现多分支管理
https://www.cnblogs.com/daodaotest/p/13164513.html
https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/tag/1.5.0
3.sonar-project配置的常用说明
https://blog.csdn.net/baidu_36943075/article/details/90634108
https://docs.sonarqube.org/latest/analysis/analysis-parameters/
4.sonarqube安装到应用
https://kubesphere.com.cn/docs/devops-user-guide/how-to-integrate/sonarqube/
5.sonarqube权限配置
https://www.cnblogs.com/anliven/p/11992868.html
https://blog.csdn.net/gaoxiang2005/article/details/53206027
6.jekins sonar插件下载
https://updates.jenkins.io/download/plugins/sonar/
7.golangci-lint检测目录下所有的文件
go-lint-xml:
golangci-lint run ./... -v --out-format=checkstyle > lint.xml //写到makefile中执行
golangci-lint run ./...
golangci-lint run --issues-exit-code 1 // 代码扫描
golangci-lint run ./... --skip-dirs ^test$ //跳过test目录扫描
https://golangci-lint.run/usage/quick-start/
8.sonarqube+jenkins-pipeline配置
stage(‘SonarQube analysis‘) {
when {
environment name:‘Is_Execute_SonarQube‘,value:‘true‘
}
steps {
script {
scannerHome = tool ‘SonarQube Scanner‘
}
withSonarQubeEnv(‘SonarQube‘) {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
// No need to occupy a node
stage("Quality Gate"){
when {
environment name:‘Is_Execute_SonarQube‘,value:‘true‘
}
steps {
//最多等待1min,如果扫描没通过,超时失败
script {
timeout(time: 3, unit: ‘MINUTES‘) {
sleep(5)
def qg = waitForQualityGate(‘SonarQube‘)
if (qg.status != ‘OK‘) {
sh """
// 推送钉钉或者企微消息
"""
error "Pipeline aborted due to quality gate failure: ${qg.status}"
}
}
}
}
}
9.跳过golang-ci扫描
1.行内注释,跳过检测
var bad_name int //nolint
2.指定跳过某个监测
var bad_name int //nolint:golint,unused
3.跳过代码块
//nolint
func allIssuesInThisFunctionAreExcluded() *string {
// ...
}
4.跳过某个文件
//nolint:unparam
package pkg
//nolint: varcheck
package testdata
10.增加sonar-scanner扫码属性文件配置,在根目录下,新增sonar-project.properties文件
sonar.projectKey=my:key //扫描的项目唯一标识,自行更改
sonar.projectName=project_name //项目名称,自行更改
sonar.projectVersion=1.0
sonar.sources=.
sonar.exclusions=**/*_test.go,**/vendor/** // 需要跳过的目录,如测试目录
sonar.branch.name=dev // 需要扫描的分支
相关文档:
https://golangci-lint.run/usage/false-positives/
https://github.com/golangci/golangci-lint/tree/master/pkg/result/processors/testdata
标签:issues mat use error href 测试 target 扫码 项目
原文地址:https://www.cnblogs.com/tomtellyou/p/14478248.html