https://github.com/debasish-87/polyglot-cicd-engine
A universal CI/CD automation engine for polyglot microservices (Java, Node.js, Python), powered by Jenkins, GitHub Actions, Tekton, and Kubernetes.
https://github.com/debasish-87/polyglot-cicd-engine
ci-cd-pipeline docker github-actions jenkins kubernetes pipelines-as-code polyglot-microservices tekton-pipelines
Last synced: 3 months ago
JSON representation
A universal CI/CD automation engine for polyglot microservices (Java, Node.js, Python), powered by Jenkins, GitHub Actions, Tekton, and Kubernetes.
- Host: GitHub
- URL: https://github.com/debasish-87/polyglot-cicd-engine
- Owner: Debasish-87
- License: apache-2.0
- Created: 2025-08-28T10:02:18.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-03-22T09:25:46.000Z (3 months ago)
- Last Synced: 2026-03-22T12:21:55.502Z (3 months ago)
- Topics: ci-cd-pipeline, docker, github-actions, jenkins, kubernetes, pipelines-as-code, polyglot-microservices, tekton-pipelines
- Language: Python
- Homepage:
- Size: 49.8 MB
- Stars: 8
- Watchers: 0
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
# Polyglot CI/CD Platform
A universal **CI/CD platform for polyglot microservices** leveraging **Jenkins, GitHub Actions, and Tekton** to automate builds, tests, and deployments across multiple languages and frameworks.
Supports **Java, Node.js, and Python microservices** with seamless integration to **AWS EKS & ECR**.
---
## Key Features
* **Multi-Language Support:** Java, Node.js, Python.
* **CI/CD Automation:** Jenkins pipelines, GitHub Actions workflows, Tekton pipelines.
* **Containerization:** Docker images for all services.
* **Cloud Native Deployment:** Kubernetes manifests for EKS deployment.
* **Scalable & Modular:** Microservices architecture ready for production.
* **Infrastructure as Code:** Kubernetes manifests and deployment automation.
* **Observability Ready:** Integrates with CloudWatch, Prometheus, and other monitoring tools.
---
## Project Structure
```text
Polyglot-CICD-Platform/
├── .github/workflows/ # GitHub Actions CI/CD pipelines
├── k8s/ # Kubernetes manifests for EKS deployment
├── scripts/ # Utility scripts for automation
├── services/ # Microservice directories
│ ├── java-app/
│ ├── node-app/
│ └── python-app/
├── tekton/ # Tekton pipeline definitions
├── Dockerfile # Sample Dockerfiles for multi-service builds
├── Jenkinsfile # Jenkins pipeline configuration
├── Makefile # Build and deployment shortcuts
├── README.md # Documentation
└── LICENSE
```
---
## Prerequisites
* **Docker** (v20+)
* **kubectl** (v1.25+)
* **AWS CLI** (v2)
* **Eksctl** (v0.214+)
* **Tekton CLI (`tkn`)**
* **Maven** (for Java service)
* **Node.js & npm** (for Node service)
* **Python 3.x & pip** (for Python service)
---
## CI/CD Pipelines
### 1. GitHub Actions
* **Workflow:** `.github/workflows/ci-cd-multi-microservice.yml`
* Triggered on push or pull request to `main` branch.
* Steps:
1. Checkout code
2. Configure AWS credentials
3. Build Docker images per service
4. Push images to AWS ECR
5. Deploy to EKS using `kubectl apply`
### 2. Jenkins
* Pipeline defined in `Jenkinsfile`.
* Supports parallel builds for all microservices.
* Deploys images to AWS ECR and updates Kubernetes manifests.
### 3. Tekton
* Tekton pipelines located in `tekton/`.
* Modular and declarative CI/CD tasks.
* Compatible with Tekton Hub resources for shared tasks.
---
## Build & Deploy Locally
### Java App
```bash
cd services/java-app
mvn clean package
docker build -t java-app:latest .
```
### Node.js App
```bash
cd services/node-app
npm install
npm test
docker build -t node-app:latest .
```
### Python App
```bash
cd services/python-app
pip install -r requirements.txt
docker build -t python-app:latest .
```
### Deploy to Kubernetes
```bash
kubectl apply -f k8s/java-app-deployment.yaml
kubectl apply -f k8s/node-app-deployment.yaml
kubectl apply -f k8s/python-app-deployment.yaml
kubectl apply -f k8s/multi-app-ingress.yaml
```
---
## AWS Integration
* **ECR:** Stores Docker images per microservice.
* **EKS:** Hosts microservices using Kubernetes.
* **CloudWatch / Prometheus:** Observability for apps & cluster.
**ECR URIs Example:**
```
java-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/java-app
node-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/node-app
python-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/python-app
```
---
## Tekton CLI Commands
* `tkn pipeline list` — List available pipelines
* `tkn pipelinerun start ` — Run a pipeline
* `tkn task list` — List available tasks
* `tkn taskrun describe ` — Inspect a task run
> Configure `tkn` as a `kubectl` plugin for seamless CLI integration.
> Conect to ZeroTrustOps SecTL WebHook for auto scan.
---
## Screenshots
### AWS EKS

### AWS ECR

### GitHub Actions

### Java App Running

### Node App Running

### Python App Running

---
## Maintenance & Cleanup
### Delete Kubernetes Resources
```bash
kubectl delete deployment java-app node-app python-app
kubectl delete service java-app-service node-app-service python-app-service
kubectl delete ingress multi-app-ingress
```
### Delete AWS ECR Images
```bash
aws ecr batch-delete-image --repository-name java-app --image-ids imageTag=latest
aws ecr batch-delete-image --repository-name node-app --image-ids imageTag=latest
aws ecr batch-delete-image --repository-name python-app --image-ids imageTag=latest
```
### Delete EKS Cluster & Nodegroups
```bash
aws eks delete-nodegroup --cluster-name polyci-cluster --nodegroup-name
aws eks wait nodegroup-deleted --cluster-name polyci-cluster --nodegroup-name
aws eks delete-cluster --name polyci-cluster
```
---
## References
* [AWS EKS Documentation](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)
* [AWS ECR Documentation](https://docs.aws.amazon.com/ecr/latest/userguide/what-is-ecr.html)
* [Tekton Pipelines](https://tekton.dev/docs/)
* [Kubernetes Documentation](https://kubernetes.io/docs/home/)
---
## License
Apache-2.0 © 2025 [Debasish-87](https://github.com/Debasish-87)
---