Background: We needed to solve a Ruby review application. One in which we could build and deploy for any instance. We also wanted it to be automatically verified and push it to stage and into production.
Goals: To create a review application that will only merge once code changes are deployed and verified. We wanted Heroku-like functionality.
"Jenkins works great towards integration of different Open Source tools. You can play around with whatever problem you have and Jenkins always has a solution for it."
Solution & Results: Jenkins played a great role for integrating all tools.
We created a pipeline that will allow any code changes to the VCS software system and let it run by itself. Any developer who has done code changes and wants to see how the build will look can create a pull request. The pull request will be open through the Jenkins-pipeline, which will be a trigger to GitHub Payload to respond.
There was no plugin available to perform this kind of stuff, so we did some R&D and created conditions according to Json of payload. Once a developer is satisfied with changes, (s)he will merge the code in the main/master branch. Hence the pull request will be closed and at the backend and the pipeline will do its task.
We are deploying it on our virtual machine with the help of multiple docker containers, and later on we’ll deploy on Kubernetes.
We achieved the results we were hoping for, including:
Heroku-like review feature created
Solving the issue to act as per pull requests
Build logs and deployment of URL exposed features to GitHub