简单示范使用SonarQube在gitlab ci/cd中扫描g
2021-01-25 本文已影响0人
万州客
QA这块,在ci/cd中,还是不可或缺的。之前少涉及,现在慢慢补上。
SonarQube的简单安装:
https://www.jianshu.com/p/c0f6f069b203
一,定义sonar-project.properties文件
sonar.host.url=http://192.168.1.212:19000
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=password
sonar.projectKey=go-demo
sonar.projectName=go-demo
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.coverage.dtdVerification=false
sonar.test.reportPath=test.xml
sonar.sources=./main/
sonar.sources.inclusions=**/**.go
sonar.sources.exclusions=**/**_test.go,**/vendor/*.com/** ,**/vendor/*.org/**, **/vendor/**
sonar.tests=./main/
sonar.test.inclusions=**/**_test.go
sonar.test.exclusions=**/vendor/*.com/**,**/vendor/*.org/**,**/vendor/**
- sonar.host.url定义远程的sonar主机地址
- 可以使用token,也可以使用用户名/密码连接sonarqube
- sonar.projectKey与sonar中的项目名称一致
- sonar.sources和sonar.tests定义代码位置。由于我这个文件是在项目根目录,所以要往下走一级
二,下载sonarsource/sonar-scanner-cli:latest镜像
docker pull sonarsource/sonar-scanner-cli:latest
三,在SonarQube中配置好示例项目
2021-01-24 13_23_48-go-demo.png
四,重新定义.gitlab-ci.yml文件
stages:
- test
- package
- release
sonarqube-test:
image: sonarsource/sonar-scanner-cli:latest
stage: test
only:
- triggers
tags:
- runInDocker
script:
- sonar-scanner
go_package:
image: golang
stage: package
only:
- triggers
tags:
- runInDocker
script:
- echo ${APP_NAME}
- echo ${RELEASE}
- echo ${BUILD_SCRIPT}
- echo ${DEPLOY_SCRIPT}
- echo ${FILE_UP_SERVER}
- go version
- sh ${BUILD_SCRIPT}
- curl -F "file=@${DEPLOY_SCRIPT}" -F "token=654321" -F "uploadSubPath=/${APP_NAME}/${RELEASE}" ${FILE_UP_SERVER}
- curl -F "file=@go-demo.tar.gz" -F "token=654321" -F "uploadSubPath=/${APP_NAME}/${RELEASE}" ${FILE_UP_SERVER}
empty-release:
stage: release
only:
- triggers
tags:
- runInDocker
script:
- echo "empty release."
五,启动pipeline
2021-01-24 13_25_19-悬浮球.png
六,在SonarQube中查看结果
2021-01-24 13_25_54-悬浮球.png
下一步,探索API,看能否直接从bifang中保存每次sonarqube的报告。