Jenkins 确认SonarQube结果适用于主分支
因为我不知道声纳是否在做一些奇怪的事情,我只是想确认它确实在扫描主分支,而不是特征分支 我的团队成员说SonarCube对feature分支进行了测试。据我所知,它在主分支上运行了测试。我们使用的是声纳7.9.1,我的目的是针对功能分支 Jenkins文件片段:Jenkins 确认SonarQube结果适用于主分支,jenkins,sonarqube,Jenkins,Sonarqube,因为我不知道声纳是否在做一些奇怪的事情,我只是想确认它确实在扫描主分支,而不是特征分支 我的团队成员说SonarCube对feature分支进行了测试。据我所知,它在主分支上运行了测试。我们使用的是声纳7.9.1,我的目的是针对功能分支 Jenkins文件片段: stage('Send sonarqube reports') { sh """ sonar-scanner
stage('Send sonarqube reports') {
sh """
sonar-scanner -Dsonar.host.url=${SONAR_CIRRUS} -Dsonar.java.libraries=/home/bcjenkins/.m2/repository/org/projectlombok/lombok/1.18.8/lombok-1.18.8.jar
"""
JSON_STRING_SONAR_METRICS = sh (
script: "curl -X GET -H \'Content-Type: application/json\' -H \'Accept: application/octet-stream\' \'${SONAR_CIRRUS}/api/qualitygates/project_status?projectKey=cirrus-bluecost-ssc-file-generator\'",
returnStdout: true
).trim()
println "The JSON_STRING_SONAR_METRICS=${JSON_STRING_SONAR_METRICS}";
def sonarQube_Results = readJSON text: "${JSON_STRING_SONAR_METRICS}";
def CodeCoverageEntryThreshold = sonarQube_Results.projectStatus.status;
if(CodeCoverageEntryThreshold == "ERROR"){
error("[cirrus-bluecost-ssc-file-generator] Code qualitygates did not PASSED. Please check the results in our Sonarqube server.\n" +
"\tTo view the sonarqube results-> ${SONAR_CIRRUS}/dashboard?id=cirrus-bluecost-ssc-file-generator\n")
}
else if(CodeCoverageEntryThreshold == "FAILED"){
error("[cirrus-bluecost-ssc-file-generator] Code qualitygates did not PASSED. Please check the results in our Sonarqube server.\n" +
"\tTo view the sonarqube results-> ${SONAR_CIRRUS}/dashboard?id=cirrus-bluecost-ssc-file-generator\n")
}
else {
CodeCoverage_resultMsg = "[cirrus-bluecost-ssc-file-generator] Code qualitygates PASSED. Please check the results in our Sonarqube server.\n" +
"\tTo view the sonarqube results-> ${SONAR_CIRRUS}/dashboard?id=cirrus-bluecost-ssc-file-generator\n";
slackSend channel: "${SONAR_SLACK_CHANNEL}", color: 'good', failOnError: false, message: "${CodeCoverage_resultMsg}", teamDomain: 'ibm-ic2e-sprint', tokenCredentialId: SLACK_DOMAIN_CREDENTIALS
}
}
关于
主/主分支机构
这是默认的分支,通常对应于正在执行的操作
为下一版本开发。这一分支通常在一段时间内就知道了
开发团队作为“主管”或“负责人”,在没有
提供了特定的分支参数。你可以给这个部门贴标签
作为主要分支,和社区版,这是唯一的分支
您可以分析
如果我们使用SonarQube社区版,我们只能分析main
或mater
分支
如果我们需要分析其他分支,我们应该至少使用SonarQube开发者版,如下所述:-
分支分析
分支分析从开发者版开始提供
编辑1:
SonarQube提供SONARINT()作为IDE扩展,包括Eclipse、IntelliJ IDEA等
我们可以将IDE配置为连接到内部SonarQube服务器,并使用此插件在开发人员机器上执行本地分析,然后再将其合并到主分支或主分支
编辑2:
使用Eclipse配置SonarLint的示例位于Thank@Charlee。因此,如果我们只使用社区版,那么在合并到主分支之前,不可能使用社区版评估代码?这似乎是一个巨大的缺点,我希望我知道如何解决它。请看我的更新1。声纳扫描仪或声纳maven?Community Edition针对“签出分支”或默认分支运行。CE真的不知道分支,只知道代码。如果您不断检查不同的分支,则会产生混乱的结果。您可以创建一个分支,将功能合并到其中,并始终扫描该分支,如果失败,则撤消更改。使用特征,合并到RC或分析分支,分析它。只要选择你想要的东西。声纳也有帮助。