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.
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
- Add
Jenkinsfileandsonar-project.propertiesto the root of your repository. - Modify
sonar.projectKeyandsonar.projectNameinsidesonar-project.propertiesto match your repository name and descripton.
That’s it. The next commit you push will be picked up by Jenkins.