Jenkins 确认SonarQube结果适用于主分支

Jenkins 确认SonarQube结果适用于主分支,jenkins,sonarqube,Jenkins,Sonarqube,因为我不知道声纳是否在做一些奇怪的事情,我只是想确认它确实在扫描主分支,而不是特征分支 我的团队成员说SonarCube对feature分支进行了测试。据我所知,它在主分支上运行了测试。我们使用的是声纳7.9.1,我的目的是针对功能分支 Jenkins文件片段: stage('Send sonarqube reports') { sh """ sonar-scanner

因为我不知道声纳是否在做一些奇怪的事情,我只是想确认它确实在扫描主分支,而不是特征分支

我的团队成员说SonarCube对feature分支进行了测试。据我所知,它在主分支上运行了测试。我们使用的是声纳7.9.1,我的目的是针对功能分支

Jenkins文件片段:

            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扩展,包括EclipseIntelliJ IDEA

我们可以将IDE配置为连接到内部SonarQube服务器,并使用此插件在开发人员机器上执行本地分析,然后再将其合并到主分支或主分支

编辑2:
使用Eclipse配置SonarLint的示例位于Thank@Charlee。因此,如果我们只使用社区版,那么在合并到主分支之前,不可能使用社区版评估代码?这似乎是一个巨大的缺点,我希望我知道如何解决它。请看我的更新1。声纳扫描仪或声纳maven?Community Edition针对“签出分支”或默认分支运行。CE真的不知道分支,只知道代码。如果您不断检查不同的分支,则会产生混乱的结果。您可以创建一个分支,将功能合并到其中,并始终扫描该分支,如果失败,则撤消更改。使用特征,合并到RC或分析分支,分析它。只要选择你想要的东西。声纳也有帮助。