Containerised CI/CD pipeline
A small CRUD application built as the vehicle for a complete DevOps pipeline, from container images through Kubernetes configuration to GitHub Actions.
What it is
A task manager with a Spring Boot REST API, a React frontend and Postgres, built for a continuous integration and delivery course mainly as the vehicle for a real pipeline.
On every push, GitHub Actions starts Postgres in a container, builds and tests the backend with Maven on Java 21, builds the frontend, and only then publishes both images to Docker Hub. Docker Compose runs the stack locally, and Kubernetes manifests describe each service for a cluster.
- Frontend and backend both built as images and published to Docker Hub, with Postgres pulled from the official image.
- Docker Compose for local composition, and Kubernetes for configuration and namespaces.
- Continuous integration and delivery through GitHub Actions.
What I learnt
- DevOps practices, learned by building a pipeline that tests before it publishes.
- Docker together with Kubernetes: an image for each service, and manifests to run them on a cluster.
What I would do next
No further work on this app. The next step is using the same practices on other platforms.