A complete DevOps CI/CD Pipeline Automation project demonstrating Continuous Integration and Continuous Deployment using Spring Boot, Jenkins, Maven, Docker, GitHub Webhooks, ngrok, Docker Hub, and Vagrant Ubuntu Virtual Machine.
The project automates the entire software delivery lifecycle from code commit to deployment with minimal manual intervention.
This project implements a fully automated CI/CD pipeline where source code changes pushed to GitHub automatically trigger Jenkins pipelines, build the application using Maven, create Docker images, push them to Docker Hub, and deploy the application using Docker containers.
The pipeline ensures:
- Faster software delivery
- Reduced manual deployment effort
- Consistent deployment environment
- Automated build and deployment process
- Improved software quality
| Technology | Purpose |
|---|---|
| Spring Boot | Backend Application |
| Java | Programming Language |
| Maven | Build Automation |
| Jenkins | CI/CD Automation |
| Docker | Containerization |
| GitHub | Source Code Management |
| GitHub Webhooks | Pipeline Triggering |
| ngrok | Public Tunnel |
| Docker Hub | Container Registry |
| Vagrant | VM Provisioning |
| Ubuntu VM | Deployment Environment |
- Automated source code integration
- GitHub repository monitoring
- Jenkins build automation
- Maven project compilation
- Automated testing workflow
- Docker image generation
- Docker Hub image push
- Automated deployment
- Containerized application delivery
- GitHub Webhook integration
- Jenkins Pipeline automation
- Docker deployment workflow
- End-to-end CI/CD implementation
DevOps-CI-CD-Pipeline/
β
βββ src/
β βββ main/
β βββ java/
β β βββ HelloController.java
β β
β βββ resources/
β βββ static/
β βββ images/
β βββ pipeline.png
β βββ workflow.png
β βββ img1.png
β βββ img2.png
β βββ ...
β
βββ Dockerfile
βββ Jenkinsfile
βββ pom.xml
βββ README.md
β
βββ target/
Developer
β
βΌ
GitHub Push
β
βΌ
GitHub Webhook
β
βΌ
ngrok Tunnel
β
βΌ
Jenkins Pipeline
β
βββ Source Checkout
βββ Maven Build
βββ Unit Testing
βββ Docker Build
βββ Docker Push
βββ Deployment
β
βΌ
Docker Container
β
βΌ
Spring Boot Application
Developer pushes code changes to GitHub.
git add .
git commit -m "Updated application"
git push origin mainGitHub automatically sends a webhook request to Jenkins.
Jenkins executes Maven build commands.
mvn clean packagedocker build -t devops-app .docker push username/devops-appdocker run -d -p 8080:8080 devops-appdocker build -t devops-app .docker imagesdocker run -d -p 8080:8080 devops-appdocker psdocker stop <container-id>docker rm <container-id>Checkout Source Code
β
βΌ
Build Project (Maven)
β
βΌ
Run Tests
β
βΌ
Create Docker Image
β
βΌ
Push Image To Docker Hub
β
βΌ
Deploy Container
β
βΌ
Application Available
Expose Jenkins Server:
ngrok http 8080Example:
https://abc123.ngrok-free.app
Used to receive GitHub webhook requests.
Webhook URL:
http://<ngrok-url>/github-webhook/
Content Type:
application/json
Trigger:
Push Event
git clone https://github.com/your-username/your-repository.gitcd your-repositorymvn clean packagemvn spring-boot:runhttp://localhost:8080
http://localhost:8080/health
Response:
APPLICATION UP
http://localhost:8080/version
Response:
Version 2.0.0
| Metric | Value |
|---|---|
| Pipeline Automation | 100% |
| Technologies Used | 8+ |
| Deployment Type | Containerized |
| CI/CD Workflow | Automated |
| Screenshots Captured | 55+ |
| Build Tool | Maven |
| Container Platform | Docker |
| CI/CD Server | Jenkins |
Through this project, the following DevOps concepts were implemented and explored:
- Continuous Integration (CI)
- Continuous Deployment (CD)
- Jenkins Automation
- GitHub Webhooks
- Docker Containerization
- Docker Hub Registry
- Build Automation using Maven
- Infrastructure Virtualization using Vagrant
- Ubuntu Server Administration
- Deployment Automation
Komal Joshi
B.Tech Computer Science Engineering
DevOps | Cloud | Full Stack Development | Software Engineering
This project was developed to demonstrate practical implementation of modern DevOps practices including CI/CD automation, containerization, deployment orchestration, and infrastructure provisioning using industry-standard tools.

