Skip to content

Instantly share code, notes, and snippets.

@tsabunkar
Last active February 7, 2024 22:53
Show Gist options
  • Save tsabunkar/68bde97f226f8a1640b3ce66c4cf6f73 to your computer and use it in GitHub Desktop.
Save tsabunkar/68bde97f226f8a1640b3ce66c4cf6f73 to your computer and use it in GitHub Desktop.

Install and use SonarQube for Deep Code Quality Analysis

Used to show the Graph, Reports in GUI format ==> SonarQube Server

  • $ docker pull sonarqube:7.9.4-community
  • $ docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:7.9.4-community
  • Log in to http://localhost:9000
    • login=admin
    • password=admin
  • create new project
  • Project Key: nestjs-test
  • Display name: nestjs-test
  • Provide a token: nestjs-example > Generate
  • Copy Token (f97710545655ea5253852992e77138fe7c4d5042) > Continue
  • Run analysis on your project: others (js/ts), computer - linux

Steps to set-up sonar scanner using -> nodejs-file/npm-package

  • $ npm i -D sonarqube-scanner
  • In scripts add - "sonar": "node sonar-project.js"
  • add a file - sonar-project.js (root of the project)
  • Copy following code :
const sonarqubeScanner = require('sonarqube-scanner');

sonarqubeScanner(
  {
    serverUrl: 'http://localhost:9000',
    options: {
      'sonar.sources': 'src',
      'sonar.tests': 'src',
      'sonar.inclusions': 'src/**/*.ts', // Entry point of your code
      'sonar.test.inclusions':
        'src/**/*.spec.ts,src/**/*.spec.jsx,src/**/*.test.js,src/**/*.test.jsx',
    },
  },
  () => {
    console.log('Error Occurred while scanning');
  },
);

  • $ npm run sonar

Steps to set-up sonar scanner-cli (used to deep scan the code ) ==> SonarQube Scanner (Docker Approach)

NOTE: [This Approach is not loading the src folder in sonar-qubes server]

  • $ docker pull sonarsource/sonar-scanner-cli:4.5
  • $ docker run
    --rm
    -e SONAR_HOST_URL="http://${SONARQUBE_URL}"
    -v "${YOUR_REPO}:/usr/src"
    sonarsource/sonar-scanner-cli:4.5
Example:

- \$ docker run \
   --rm \
   --network=host \
   -e SONAR_HOST_URL="http://127.0.0.1:9000" \
   -v  $(pwd):/root/src \
   sonarsource/sonar-scanner-cli:4.5 \
   -Dsonar.projectKey=nestjs-test-example \
   -Dsonar.inclusions=src/**/*.ts \
   -Dsonar.test.inclusions=src/**/*.spec.ts,src/**/*.spec.jsx,src/**/*.test.js,src/**/*.test.jsx \
   -Dsonar.ts.tslint.configPath=tslint.json \

Another docker image for sonar-scanner ==> [newtmitch/docker-sonar-scanner]

  • $ docker pull newtmitch/sonar-scanner:4-alpine

- \$ docker run -ti -v $(pwd):/usr/src --link sonarqube:7.9.4-community newtmitch/sonar-scanner:4-alpine \
        -D sonar.host.url=http://sonarqube:9000 \
        -D sonar.scm.provider=git  \
        -D sonar.projectBaseDir=./src \
        -D sonar.sources=. \
        -D sonar.projectName='Test-Nestjs-Analysis'


Ref


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment