Background: I belong to a cyber enthusiasts club that mainly focuses on spreading awareness related to cybersecurity and promoting the usage of open source. We formed in 2018 and are now a group of more than 500 enthusiasts who are always willing to learn new things. I also host a hackathon that has been a lot of fun.
The main objective of this project was to automate the web development environment. I wanted to develop a project which can help me develop such an environment. While going through multiple online blogs and articles I got to know Jenkins could help me develop this. And this was possible using Pipelines and CI — continuous integration — one of the best properties of Jenkins. So I started learning about Jenkins and how it implements Continuous Integration and pipelines as I was very new to this stuff.
In short, here’s what I learned:
First, a developer must commit the code to the source code repository.
Meanwhile, the Jenkins server checks the repository at regular intervals for changes.
As soon as a commit occurs, the Jenkins server detects the changes that have occurred in the source code repository.
Jenkins will pull those changes and will start the preparation of a new build.
If the build fails, the developer is notified. If successful, it deploys the test server.
The Jenkins pipeline can be configured for automating the builds.
Goals: The main objective here was to fasten the web development process and automate.
"Jenkins rocks! It helped me to automate major work and make deploying the environment so easy."
Solution & Results: After about 2 months of research, I implemented Continuous Integration Pipelines using the Jenkins syntax which was very helpful for me. The pipeline once implemented pulls all the commits and tests it with the server. The code is built and test as soon as the developer commits the code. Jenkin will build and test code many times during the day. If the build is successful, then Jenkins will deploy the source into the test server and notify the deployment team. If the build fails, Jenkins will notify the developer of the errors.
The key capabilities of Jenkins that were used are Continuous Integration and Pipelines. The biggest benefits I receive from these are the faster deployment of the Web Development Environment and Automated Workflow. The pipeline helped to directly pull commits and deploy the servers. Automated workflow is best for developers as Jenkins pipelines send feedback to the developers if there are any errors or if the build fails.
The Jenkins properties really helped and would work on multiple other projects, too. Here are the results I received on this project:
Faster deployment of the environment
Automated build testing with Pipeline
Faster feedback to the developer about the progress/ errors