SonarCloud migration from SonarQube



SONARQUBE SUPPORT WILL END FEB-20

Please make sure there are no components left in SonarQube

Please implement SonarCloud coverage drop fix explained below

Timeline of events



To prevent dependency issues, this migration is planned to happen in 2 stages. 

Stage 1 will use hardcoded sonar goals to the needed plugin version to avoid waiting on dependencies from where this can be inherited.

Stage 2 will be a cleanup stage and work towards fixing the plugin in the dependencies like oparent and slowly migrate teams to it while removing hardcoded sonar goals.

STAGE 1

  1. RELENG → Will add the needed changes in ci-management for each project and run a test in the sandbox

  2. RELENG → will post the restults of the sandbox test in the 3rd column below.

    • This is not reflecting if the Sonar report actually pass or failed a quality gate. Instead, this result is the outcome of running the Sandbox job using the changes in ci-management.

  3. TECHTEAM → Review the results and comments posted by Releng in column 4. PTLs will be mentioned explicitly to notify them that the next action is on their team.

  4. TECHTEAM&RELENG → Will work on any additional comments/questions/issues from column 4 and 5.





SONAR COVERAGE DROP TO 0%

Sonar Cloud made an update on the jacoco plugin where they dropped support for .exec file format. We need to use .xml instead. 

Please look for more information in https://community.sonarsource.com/t/sonar-coverage-dropping-to-0-for-some-projects/18521/2

Some teams like APPC have upgraded their reports and coverage was restored for them. Please follow their examples: https://gerrit.onap.org/r/#/c/appc/parent/+/100156/https://gerrit.onap.org/r/#/c/appc/+/100155/



Also, OPARENT has been updated with the fix too https://gerrit.onap.org/r/#/c/oparent/+/100168/ included in 3.0.0-SNAPSHOT 





STAGE 2

  1. Update oparent to upgrade the sonar plugin and Jacoco configuration to the latest plugin required by SonarCloud: https://sonarcloud.io/documentation/analysis/scan/sonarscanner-for-maven/

  2. Make an oparent release wit this change

  3. Migrate teams to the new oparent while also removing the hardcoded goals in their sonar ci-management changes from the above table

SonarCloud migration notes



Ready to migrate? Things to consider and challenges faced with the currently migrated teams

  •  

    • Teams will still be using the same Jenkins jobs

    • SonarCloud is based on SonarQube 8.0 with +- some feature and plugin differences

    • SonarQube will stay around for some time, but eventually will be deprecated (mid next year)

    • Warnings in Quality Gates are no longer applicable in SonarCloud

    • Teams using the "org.sonarsource.scanner.maven" plugin, might face issues during the migration since this plugin calls SonarQube directly in older versions.

Testing the migration

The reports will now be posted under: https://sonarcloud.io/organizations/onap/projects

Jenkins jobs do not change.