Build, Test and Deploy a modern webapp using CircleCI.
Technologies covered:
- Build a Spring Boot app with Maven (and caching maven repos!)
- Browser testing with Selenium and Sauce Labs
- Static Code Analysis with SonarQube
- Manual Approval/Promotion
- Blue/Green (zero downtime) Deployments with Cloud Foundry.
To test simple UI functionality we're using Spring Boot's test starter and SauceLabs Connect Tunnel binaries driven through Selenium's WebDriver
interface. The use of SauceLabs let's us run several browser combinations in parallel.
You can see these simple tests in HomePagesTests.java
One of my favorite features of CF is the zero-downtime deployments using Blue/Green strategy.
- Push new version of app on a 'dark' URL not used by customers
- Validate application health on dark URL
- Begin routing customer facing URL to new version
- Stop sending customer traffic to old version
- Stop and remove previous version
You can see this executed in config.yml
And live app visible on http://blueskygreenbuilds.com
This project uses spring boot, so run as you would any other like project to start on port :8080 locally.
mvn spring-boot:run
See demo-assets