Skip to content

1. Introduction

Daniel Favour edited this page Jul 21, 2024 · 21 revisions

Project Overview

Objective

This project aims to set up an advanced Continuous Integration and Continuous Deployment (CI/CD) pipeline using GitHub Actions. It integrates appropriate messaging queues and manages the deployment of Java boilerplate projects. The primary focus is on automating build, test, and deployment tasks while improving service communication through messaging queues. Successful execution of this project will streamline project management, ensure reliable deployments, and foster team success.

Key Components

  1. CI/CD Pipeline with GitHub Actions:

    • Continuous Integration: Automate the process of integrating code changes from multiple contributors into a shared repository, ensuring that each change is automatically tested and validated.

    • Continuous Deployment: Automate the process of deploying the Java projects to various environments (e.g., staging, production) following a successful build and test process.

    • Automation Tasks: Automate repetitive tasks such as code compilation, unit testing, integration testing, and deployment.

  2. Messaging Queues Integration:

    • Service Communication: Utilize messaging queues to enhance the communication between different services within the project. This ensures decoupled architecture and improves the reliability and scalability of the system.

    • RabbitMQ/Celery Integration: integrate RabbitMQ and Celery for task queuing, allowing asynchronous processing and improving the system’s responsiveness and efficiency.

Environments

There are three(3) environments and branches set up for this project:

  • Dev (Development)
  • Staging (Staging)
  • Main (Production)