Enabling Jenkins job sonar-verify

In order to be "security by design" ready, the ONAP code must be analyzed before the merge. Here are the steps to enable the Jenkins job called "{PROJECT_NAME}-sonar-verify" which will allow you run proactive SonarCloud scans for your project on every new code patch-set through Gerrit.

Requirements

  • global-jjb >= v0.71.0

Steps

  • clone the ci-management repo: https://gerrit.onap.org/r/admin/repos/ci-management

  • enter the jjb folder of your project (e.g. ci-management/jjb/cps/)

  • edit or create the yaml file with the JJB templates (e.g. cps.yaml)

  • add a new project section with the following configuration (update the fields based on the project name you are editing, this example is for CPS project)

    https://gerrit.onap.org/r/c/ci-management/+/125534

    - project: name: cps-sonar-verify java-version: openjdk11 mvn-version: "mvn36" maven-version: "mvn36" jobs: - gerrit-maven-sonar-verify sonarcloud: true sonarcloud-project-organization: '{sonarcloud_project_organization}' sonarcloud-api-token: '{sonarcloud_api_token}' sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}' sonar-mvn-goal: '{sonar_mvn_goal}' build-node: centos7-docker-8c-8g project: 'cps' project-name: 'cps' branch: 'master' mvn-settings: 'cps-settings' mvn-goals: 'clean install' mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'



  • OPTIONAL (Quality Gate result can block the merge):

    • if you are ready to get more restrictive proactive scans that will block a merge if code quality issues are found, then set the field sonarcloud-qualitygate-wait to 'true'

    • example: https://gerrit.onap.org/r/c/ci-management/+/126562

      sonarcloud-project-organization: '{sonarcloud_project_organization}' sonarcloud-api-token: '{sonarcloud_api_token}' sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}' + sonarcloud-qualitygate-wait: true sonar-mvn-goal: '{sonar_mvn_goal}' build-node: centos7-docker-8c-8g project: 'cps'



  • save your work with git and push a change to Gerrit with git-review

  • now your project will get a new "{PROJECT_NAME}-sonar-verify" Jenkins job that will execute SonarCloud scans every time there is a new code patchset