Jenkins is the way to achieve speed & correctness

Education Management System

Submitted By Jenkins User Shreyas Subhedar 

This student lands a great DevOps job by showcasing his skills with a Jenkins-based college project.

Organization: Jawaharlal Nehru Engineering College, 

Team Members: Kamlesh Mugdiya, Software developer, FrontDoor

Industry:  Information Technology, Education

Programming Language: PHP, Python

Platform: Docker or Kubernetes, Linux

Version Control System: GitHub

Build Tool: PHPUnit, Cover.php

Community Support: websites & blogs, Spoke with colleagues and peers

Use of Jenkins for a college DevOps project
inspires other students to embrace Jenkins, too.

Background:  In my last year at Jawaharlal Nehru Engineering College, I worked with fellow student Kamlesh Mugdiya on a DevOps project. As we were designing the on-premise cloud, we focused on Nextcloud Tech and the LAMP stack web application. In doing so, we needed to make the right connections to set the flow of data.  

The project size was increasing daily. Modularisation testing, in which we divided the cloud & code-editor into multiple models for development, started to become an issue. We also wanted our project to be fully documented and easy for fellow students to contribute to.

Goals: Student Briefcase (College Project 2020): We were building a system that would store coding assignments of all students of the college, analyze the code for valuation, and provide the coding platform that each student will use — all closely monitored by college staff.

“Adding Jenkins helped me land my first job in Acquia. 😉 It’s a best practice that every SRE/OPS dev/manager should follow to achieve the speed, simplicity & accuracy at every push.”
Shreyas Subhedar, Associate Engineer DevOps, Acquia Inc.

Solution & Results: We needed a complete pipeline to simplify the integration process and make it manageable for developers. This is where Jenkins comes in. We used the complete CI to check the valid commit & PRs. We also used AWS S3 to store the backup of Nextcloud (on-prem cloud) by scheduling one cron job as a task in Jenkins. By adding a CI pipeline for the LAMP web app, we got a standard structure for our project, making it clear and straightforward for junior students to code and contribute to.

Here are the key capabilities we used:

  • Jenkins Docker plugin: For creating Jenkins slave as a docker container, I use the Docker plugin — it’s the best plugin!
  • CoverPHP: to get the test coverall report by PHPUnit 
  • Crap4J: We tried this plugin to eliminate some less usable methods. As students are also contributing towards improving the application, it was essential to include code review. 
  • GitHub using the Secure Shell Protocol (SSH): It’s a lifesaver plugin!

We got the results we were hoping for:

  • Simplicity in the Agile Sprint
  • Resolution time for merge conflicts shortened from 1 week to 2 days
  • As students, we got great exposure to DevOps and CI-CD 
  • Inspired interest in junior students to learn Jenkins
  • Builds are categorized by the errors & debugged easily

Like what you see? Share your Jenkins user story today.

Jenkins® is a CD Foundation project and a registered trademark of Software in the Public Interest, Inc. Copyright Jenkins 2020