From 80d08edbf953e36114069dc7531e3116b90cd5c5 Mon Sep 17 00:00:00 2001
From: Mahabub <mahabubx7@gmail.com>
Date: Mon, 14 Oct 2024 15:35:50 +0600
Subject: [PATCH] ci: added ci tests and coverage report automation

---
 .github/workflows/ci.yml | 52 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 .github/workflows/ci.yml

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..4ea8c11
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,52 @@
+name: CI
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+    branches:
+      - main
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v2
+
+      - name: Set up Node.js
+        uses: actions/setup-node@v2
+        with:
+          node-version: "14"
+
+      - name: Install dependencies
+        run: npm install
+
+      - name: Run tests
+        run: npm run test
+
+      - name: Run test coverage
+        run: npm run coverage
+
+      - name: Upload coverage to Codecov
+        uses: codecov/codecov-action@v2
+        with:
+          token: ${{ secrets.CODECOV_TOKEN }}
+
+      - name: Generate coverage badge
+        run: npx covgen badge
+
+      - name: Update README with coverage badge
+        run: |
+          COVERAGE_BADGE=$(cat coverage/badge.svg)
+          sed -i 's|<img src=".*" alt="Coverage Badge"/>|'"$COVERAGE_BADGE"'|' README.md
+
+      - name: Generate test result badge
+        run: npx vitest-badge-gen
+
+      - name: Update README with test result badge
+        run: |
+          TEST_BADGE=$(cat test-result/badge.svg)
+          sed -i 's|<img src=".*" alt="Test Result Badge"/>|'"$TEST_BADGE"'|' README.md