我正在尝试为python应用程序构建一个运行sonarqube的管道。这是我第一次使用gitlab-ci,所以我希望获得一些指导。我知道要运行声纳,您必须以某种方式在yml中调用声纳扫描仪。那就是我被困住的地方。如何在泊坞窗中设置/安装声纳扫描仪?我正在使用python图像运行docker。任何帮助将不胜感激。老实说,我不了解在本地下载声纳扫描仪软件包的意义。 git管道默认是否查看本地计算机上安装的软件包?
答案 0 :(得分:2)
有两种解决方案:
sudo apt install openjdk-11-jdk-headless
然后按照文档中提供的步骤在您的机器上安装声纳扫描仪。 2.您可以将安装了声纳扫描仪的docker镜像用作基础镜像,并使用该镜像构建具有所需python版本和所需软件的自己的docker镜像。
例如,您可以使用以下docker映像作为docker映像的参考映像
bluelabseu/sonar-scanner:4.3.0-7879
使用声纳扫描仪图像采样docker文件来为python项目创建图像。
FROM bluelabseu/sonar-scanner:4.3.0-7248`
RUN apt-get update && apt-get install python2.7 -y && apt-get install python3.6 -y
一旦有了docker文件,就可以使用它来创建docker映像并将其上传到项目存储库的gitlab-container注册表中。
将Sonar-scanner用于python项目:
如果要向sonarqube发布代码覆盖率和代码质量,则必须生成可由任何构建工具生成的测试覆盖率文件。
在sonarqube管理中为python配置文件添加覆盖率报告路径。可以设置如下:
a。用管理员用户登录sonarqube服务器。
b。转到管理->配置-> python->测试和覆盖率->覆盖率报告的路径。将coverage-reports/*coverage-*.xml
设置为sonar.python.coverage.reportPaths
键的覆盖范围。
例如使用诗歌构建工具生成测试覆盖率报告
poetry run py.test tests/ --cov=<PROJECT_PACKAGE_NAME>/ --cov-report xml:coverage-reports/coverage-result.xml
在
sonar-scanner -Dsonar.coverage.exclusions=tests/** -Dsonar.python.coverage.reportPaths=coverage-reports/coverage-reports.xml -Dsonar.projectKey=<PROJECT_NAME> -Dsonar.projectName=<PROJECT_NAME> -Dsonar.projectVersion=<<PROJECT_VERSION> -Dsonar.sources=<PROJECT_PACKAGE_NAME> -Dsonar.tests=tests/ -Dsonar.sourceEncoding=UTF-8 -Dsonar.host.url=<SONAR_HOST_SERVER_URL> -Dsonar.login=<SONAR_AUTH_TOKEN>
注意:如果您不在sonar-scanner.properties文件中设置任何配置,并在命令本身中提供带有-D参数的配置,将会更好。