name: CI on: push: branches: [main, dev] pull_request: branches: [main, dev] jobs: backend: name: Backend Build & Test runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install --frozen-lockfile - name: Build backend run: bun run build - name: Lint code run: bunx --bun eslint ./src ./web/src --ext .ts,.tsx - name: Format check run: bunx --bun prettier --check "**/*.{js,json,md,ts,tsx}" --ignore-path .prettierignore frontend: name: Frontend Build & Test runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install frontend dependencies run: | cd web bun install --frozen-lockfile - name: TypeScript check frontend run: | cd web bunx tsc --noEmit - name: Build frontend run: | cd web bun run build