diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ba679d8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,33 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Generate Prisma client + run: npm run prisma:generate + + # Builds shared, server and client in order; `tsc` in each workspace is + # the typecheck, and the client build also exercises Vite. + - name: Build all workspaces + run: npm run build + + # Server tests mock the Prisma client (jest-mock-extended), so no + # database service is required. + - name: Run server tests + run: npm test diff --git a/README.md b/README.md index b805aa2..29613c3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # DevBoard +[![CI](https://github.com/shaurya703/devboard/actions/workflows/ci.yml/badge.svg)](https://github.com/shaurya703/devboard/actions/workflows/ci.yml) + A Kanban-style task & project management tool (think a lightweight Trello/Linear) with **real-time collaboration**. Create boards, drag cards across columns, assign work, label it, share boards by email with role-based access, and watch changes sync live across every connected client. Built as a portfolio project to demonstrate clean full-stack architecture, production patterns (JWT refresh rotation, optimistic UI, typed end-to-end contracts), and a one-command local setup.