Continuous Integration

We’re using Jenkins for automated workflow (pipeline) and SonarQube for code analysis.

Jenkins and Sonarqube each requires Jenkinsfile and sonar-project.properties to be included in your repository. These files are specific to the programming language and framework you use. Please see some examples below.

  1. Examples
  2. Setup

Examples

Language Framework Build Test Code Coverage Coding Standard Example
Typescript NestJS npm/yarn jest lcov eslint example_jenkins_nestjs
example_jenkins_nestjs2
example_jenkins_nestjs3
React npm/yarn jest lcov eslint
Angular npm jasmine & karma lcov example_jenkins_angular
yarn jasmine & karma lcov eslint example_jenkins_angular2
example_jenkins_angular3
Java Spring Boot maven junit example_jenkins_spring_maven
example_jenkins_spring_maven2
maven junit jacoco checkstyle example_jenkins_spring_maven3
PHP Laravel composer phpunit clover phpcs example_jenkins_laravel
example_jenkins_laravel2
example_jenkins_laravel3
Kotlin Kotlin gradle junit jacoco example_jenkins_android_kotlin_gradle
gradle junit jacoco ktlint example_jenkins_android_kotlin_gradle2

Setup

  1. Add Jenkinsfile and sonar-project.properties to the root of your repository.
  2. Modify sonar.projectKey and sonar.projectName inside sonar-project.properties to match your repository name and descripton.

That’s it. The next commit you push will be picked up by Jenkins.