作者:手机用户2502893535 | 来源:互联网 | 2022-12-31 20:40
我用SonarQube创建了自己的服务器,我想用gitlab连接它.每次我将提交我的提交sonarqube扫描仪将运行并在代码中创建结果+注释.
我已经下载了这个插件:https:
//gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin
根据
Gitlab与SonarQube的集成,
这些只有2个插件
我在我的SonarQube服务器上安装了这个插件.在插件选项中,将gitlab API密钥和url添加到我的存储库中,就像在文档中一样.
好的,所以它已经完成......但现在呢?我必须在gitlab中改变,当我推送提交gitlab时会知道"好吧,我必须用这个sonarqube服务器分析这段代码"
我是全新的(sonarqube和gitlab),3天前我对SonarQube一无所知,我不知道我可以在gitlab中开始一个跑步者.
插件文档中有一些例子,但我不理解它们,我的意思是我不知道在gitlab上的"示例"部分放置此代码,以使其正常工作.
被困在原地.我不是在谈论这个.gitlab-ci.yml因为我认为它适用于java项目,而且没关系,但我想分析python和其他......但是如何; /?
请帮忙
1> Stefan van G..:
首先,所需的设置包含多个组件,您已经拥有了一些组件.
SonarQube服务器+ Gitlab插件 https://sonarqube.example.com
Gitlab项目(foo/bar)
一个SONAR_TOKEN
与SonarQube用户令牌在您的项目设置CI设置变量/ CD秘密变量(可以在每一个CI工作注入)
Gitlab CI配置(.gitlab-ci.yml
)
项目中的声纳项目配置文件root(sonar-project.properties
)
将sonar-scanner
安装在您的CI亚军(或见注)
sonar-project.properties
根据您的需要进行修改或将所有设置作为-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/**/*
.gitlab-ci.yml工作
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
笔记
您可以使用例如提供声纳扫描仪的Docker容器,而不是在跑步者中安装声纳扫描仪.
如果您不想要sonar-project.properties
文件,可以通过命令行提供设置,就像其他-D
变量一样.