From d05f5dc883d311869b1941dff8543b87f33c55c9 Mon Sep 17 00:00:00 2001 From: Arun Kumar Date: Mon, 20 Oct 2025 22:17:42 +0530 Subject: [PATCH] integration: ci-pipeline --- .github/workflows/ci.yml | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 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..02c7e7c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: CI - Backend (E2E Only) + +on: + push: + branches: ["*"] + pull_request: + branches: ["*"] + +jobs: + e2e-tests: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:14 + ports: + - 5432:5432 + env: + POSTGRES_USER: arun + POSTGRES_PASSWORD: 12arun + POSTGRES_DB: BrainVector + options: >- + --health-cmd="pg_isready -U arun -d BrainVector" + --health-interval=10s + --health-timeout=5s + --health-retries=5 + + redis: + image: redis:6.2-alpine + ports: + - 6379:6379 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: "npm" + cache-dependency-path: backend/package-lock.json + + - name: Install backend dependencies + working-directory: backend + run: npm install + + - name: Setup Prisma + working-directory: backend + env: + DATABASE_URL: postgres://arun:12arun@localhost:5432/BrainVector + run: | + npx prisma generate + npx prisma migrate deploy + + - name: Lint code + working-directory: backend + run: npm run lint + + - name: Run E2E tests + working-directory: backend + env: + DATABASE_URL: postgres://arun:12arun@localhost:5432/BrainVector + NODE_ENV: test + run: npm run test:e2e