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
Jenkinsfile
andsonar-project.properties
to the root of your repository. - Modify
sonar.projectKey
andsonar.projectName
insidesonar-project.properties
to match your repository name and descripton.
That’s it. The next commit you push will be picked up by Jenkins.