Enhancing Code Quality: Integrating SonarQube into Your CircleCI Pipeline

--

Introduction :-

In the ever-evolving landscape of software development, maintaining high code quality is paramount. It’s the bedrock on which stable, secure, and scalable applications are built. However, ensuring #codequality can be challenging, especially in a world where rapid development and continuous integration are the norm.

Enter #SonarQube, a powerful tool designed to help developers and teams enhance their code quality. #SonarQube doesn’t just scan code for bugs and vulnerabilities; it delves deep into the intricacies of code, identifying technical debt, duplications, and other issues that may compromise the long-term maintainability of your software.

Pre-requestisites:-

  • #CircleCI application with #GitHub (project) configured.
  • GitHub Repository with CircleCI full access.
  • #SonarQubeAccess

Procedure :-

Step-1: First Login to your #SonarQube and generate a token, then copy it.

Step-2 :- Next Login to your circleci application and go to the contexts and then create a environment variable for #Sonarqube token in your circleci Context as shown below.

Step-3 :- Open your circleci config using a visual editor and add below job to run #Sonarqube on your project code.

version: 2.1

orbs:
sonarscanner: psl/sonarscanner@0.0.4

jobs:
# Sonarqube scanner
scan:
docker:
- image: YOUR DOCKER IMAGE
working_directory: /tmp/workspace
environment:
ENV_FILE: /tmp/workspace/.circleenv
DOCKER_BUILDKIT: "1"
BUILDKIT_PROGRESS: plain
steps:
- checkout
- attach_workspace:
at: /tmp/workspace
- run:
name: Install Sonarqube scanner
command: |
sudo apt-get update
sudo apt-get install -y openjdk-11-jdk
wget -O sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
unzip sonar-scanner.zip
rm sonar-scanner.zip
- run:
name: Run Sonarscanner
command: |
export PATH="$PATH:$PWD/sonar-scanner-4.6.2.2472-linux/bin"
sonar-scanner \
-Dsonar.projectKey=$CIRCLE_BRANCH:$CIRCLE_PROJECT_REPONAME \
-Dsonar.host.url=https://sonarqube.com/ \
-Dsonar.login=$SONAR_TOKEN

workflows:
version: 2
main:
jobs:
- scan:
context: sonarqube

Step-4:- Commit your changes and push the code to the Github repository. Circleci will automatically trigger the changes and runs the pipeline.

Step-5 :- Go to the circleci projects and check whether the pipeline got triggered or not.

Step-6 :- Once the Job Completes, Go a head and check whether sonarqube detects bugs and vulnerabilities in code as shown like below.

Source-code Link :- https://github.com/MahiraTechnology/Mahira-medium.git

Conclusion :-

In the world of modern software development, #codequality is non-negotiable. It’s about creating maintainable, efficient, and secure codebases. #SonarQube, with its comprehensive code analysis, is a valuable ally on this journey.

Integrating #SonarQube into your #CircleCI pipeline empowers your team to detect and rectify issues early. This proactive approach saves time, resources, and elevates the overall quality of your codebase

--

--

Mahira Technology- Innovate. Transform. Thrive.
Mahira Technology- Innovate. Transform. Thrive.

Written by Mahira Technology- Innovate. Transform. Thrive.

A leading tech consulting firm specializing in innovative solutions. Experts in cloud, DevOps, automation, data analytics & more. Trusted technology partner.

No responses yet