-
Notifications
You must be signed in to change notification settings - Fork 2
Testing and Continuous Integration
Type | Tool |
---|---|
Functional | JUnit5 |
Functional | Mockito |
Coverage | JaCoCo |
Structural | SonarQube |
For continuous integration, we make use of GitHub Actions and set up the workflows as below.
GitHub Action | Workflow | Example |
---|---|---|
Java with Gradle | Build and test with Gradle wrapper | CI for browse-service |
Build and Deploy to GKE | Build a docker container, publish it to Google Container Registry, and deploy to GKE | Deploy browse-service |
SonarCloud Plugin | Build and test with gradle and scan with SonarQube | SonarCloud for browse-service |
Java with Gradle workflow is used to build and test the back-end modules using Gradle wrapper and is triggered when commits are pushed to the develop branch for the corresponding subdirectory (i.e. browse-service or calculator-service). This workflow will only build and test each service individually when a change is made to them.
Build and Deploy to GKE workflow is used when changes are pushed to the develop branch to the corresponding service module. It is also used for the main branch when a release is scheduled.
SonarCloud Plugin workflow is triggered for the branches scan-browse-service and scan-calculator-service for SonarQube scanning.
Service | JaCoCo Test Report |
---|---|
browse-service | coverage |
calculator-service | coverage |
Code quality check is done by SonarQube integrated with GitHub CI actions.
Service | SonarCloud Report |
---|---|
browse-service | code quality report |
calculator-service | code quality report |