Skip to content

Earthyyy/cloud-cicd-with-jenkins

Repository files navigation


Logo

deploy.

Automate deployment process using Jenkins and AWS

Overview    |    Built With    |    Infrastructure    |    Roadmap    |    Contributing

🔍 Overview

This project is aimed at automating the deployment process using Jenkins and AWS. It provides a seamless way to deploy applications by integrating Jenkins for continuous integration and delivery and leveraging AWS services for hosting and managing the application infrastructure.

Deploy. Screenshot

(back to top)

🛠️ Built With

This project was built using the following technologies:

  • Jenkins - CI/CD tool for automating the deployment process
  • Maven - Build automation tool used for managing the project's build lifecycle
  • SonarQube - Open-source platform for continuous inspection of code quality
  • Docker - Open platform for developing, shipping, and running containerized applications
  • EC2 - IaaS service that provides secure, resizable compute capacity in the cloud
  • ECR - Fully managed container registry that makes it easy to store, manage, share, and deploy Docker container images
  • ECS w/ Fargate - Fully managed container orchestration service that makes it easy to run, stop, and manage Docker containers on a cluster

(back to top)

🏗️ Infrastructure

Jenkins Pipeline

Our journey starts when the developer pushes the code to the repository. A webhook triggers the Jenkins pipeline, which is responsible for:

  • 📥 Checking out the code from the repository
  • 🛠️ Building the application w/ Maven
  • ✅ Running unit tests
  • 📑 Generating checkstyle reports w/ Maven
  • 🔍 Running SonarQube analysis
  • ✔️ Checking if the code meets the quality gate
  • 🐳 Building the Docker image
  • 🗂️ Pushing the Docker image to ECR
  • 🚀 Deploying the application to ECS w/ Fargate

P.S: A notification is sent to the developer either on success or failure of the pipeline in Microsoft Teams.

(back to top)

🗺️ Roadmap

  • Use Terraform for infrastructure as code
  • Add support for Kubernetes

(back to top)

👥 Contributing

Embracing collaboration is what fuels the heartbeat of the open-source community. Your contributions are not just welcomed but cherished.

Should you have ideas for improvement, we invite you to fork the repository and initiate a pull request. Alternatively, feel free to open an issue, labeled 'enhancement,' to share your insights.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feat/new-feature-name)
  3. Commit your Changes (git commit -m 'feat: add some new feature')
  4. Push to the Branch (git push origin feat/new-feature-name)
  5. Open a Pull Request

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published