Continous Integration and Continous Deployment
To simplify the process of development, releasing of software, and also keeping the agile development practices in mind, we have a CI/CD workflow intact with our repository which will enforce the automation of the whole deployment process. The workflow focuses on automating the software delivery process so that the team can easily deploy their code to production at any time without compromising on quality.
We have used Github Actions for building the CI/CD pipeline and below is the diagram to briefly describe how the current setup works. The workflow gets triggered the moment the code is pushed to the respective branches (dev-helm-deploy to deploy code to development and prod-helm-deploy to deploy code to production). Once the workflow is triggered (which you can find in the Actions tab) it will perform the below actions.
- Test - Execute automated tests(WIP).
- Build and Push - Build the Docker images and push to Docker Hub.
- Deploy - Pull the latest image, deploy and restart the deployment in the Google Kubernetes Engine cluster.
All the jobs defined above are synchronous and failure at any step will abort the consecutive jobs. After the successful completion of the workflow, the code changes will be reflected on the server with minimum or zero downtime.
Click here to learn more about our current infrastructure environment.