我用SonarQube创建了自己的服务器,我想将它与我的gitlab连接起来。每次我将提交我的提交sonarqube扫描仪将运行并在代码中创建结果+注释。
我已经下载了这个插件: https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin
根据 Gitlab integration with SonarQube 这些只是2个插件
我在SonarQube服务器上安装了这个插件。在插件选项中,将gitlab API密钥和url添加到我的存储库中,就像在文档中一样。
好的,所以它已经完成......但现在呢?我必须在gitlab中改变,当我推送提交gitlab时会知道“好吧,我必须用这个sonarqube服务器分析这段代码”
我对此很新(sonarqube和gitlab),3天前我对SonarQube一无所知,我不知道我可以在gitlab中开始跑步。
插件文档中有一些示例,但我不理解它们,我的意思是我不知道在gitlab上的“示例”部分放置此代码,以使其正常工作。
被困在原地。我不是在谈论这个.gitlab-ci.yml因为我认为它适用于java项目,而且没关系但是我想分析python和其他......但是如何; /?
请帮忙
答案 0 :(得分:7)
首先,所需的设置包含您已经拥有的多个组件。
https://sonarqube.example.com
SONAR_TOKEN
变量(将在每个CI作业中注入).gitlab-ci.yml
)sonar-project.properties
)sonar-scanner
installed(或参见说明)修改您的需求或提供所有设置为-D选项(请参阅工作)
# Required metadata
sonar.projectKey=nl.example.foo.bar
sonar.projectName=FoorBar app
# Comma-separated paths to directories with sources (required)
sonar.sources=src/app
# Language
sonar.language=js
# Encoding of sources files
sonar.sourceEncoding=UTF-8
# Exclude
sonar.exclusions=src/app/core/**/*
CI设置包含2个并行运行的作业(在我的情况下),一个作业进行预览,负责在提交中进行注释,但实际上并不向SonarQube服务器发送数据。第二个作业执行相同的扫描,但发布到SonarQube服务器并检查所有质量门(通过/失败)。
#######################################
# Check the project code quality with Sonar, make sure your Gitlab project has a secret variable (project -> settings -> CI/CD) defined called SONAR_TOKEN
#######################################
codequality_preview:
stage: qa
script:
- sonar-scanner -Dsonar.host.url=https://sonarqube.example.com -Dsonar.analysis.mode=preview -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.gitlab.commit_sha=$CI_BUILD_REF -Dsonar.gitlab.ref_name=$CI_BUILD_REF_NAME -Dsonar.projectVersion=$CI_BUILD_ID -Dsonar.branch=$CI_BUILD_REF_NAME -Dsonar.gitlab.project_id=$CI_PROJECT_URL
#######################################
# Check the project code quality with Sonar, make sure your Gitlab project has a secret variable (project -> settings -> CI/CD) defined called SONAR_TOKEN
#######################################
codequality:
stage: qa
script:
- sonar-scanner -Dsonar.host.url=https://sonarqube.example.com -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.projectVersion=$CI_BUILD_ID -Dsonar.branch=$CI_BUILD_REF_NAME
sonar-project.properties
文件,可以通过命令行提供设置,就像其他-D
个变量一样。