name: CI on: push: branches: [main] pull_request: branches: [main] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: backend: name: Backend — typecheck + test + build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Checkout common-plat (for @bytelyst/* packages) uses: actions/checkout@v4 with: repository: saravanakumardb1/learning_ai_common_plat path: learning_ai_common_plat token: ${{ secrets.GH_PAT }} - uses: actions/setup-node@v4 with: node-version: 22 - name: Install pnpm (for common-plat build) run: npm install -g pnpm - name: Build @bytelyst/* packages working-directory: learning_ai_common_plat run: | pnpm install --frozen-lockfile pnpm build - name: Install backend dependencies working-directory: backend run: npm ci - name: Backend typecheck working-directory: backend run: npm run typecheck - name: Backend tests working-directory: backend run: npm test env: DB_PROVIDER: memory JWT_SECRET: ci-test-secret-at-least-32-characters-long - name: Backend build working-directory: backend run: npm run build web: name: Web — typecheck + test + build runs-on: ubuntu-latest defaults: run: working-directory: web steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: web/package-lock.json - run: npm ci - run: npm run typecheck - run: npm test - run: npm run build mobile: name: Mobile — typecheck runs-on: ubuntu-latest defaults: run: working-directory: mobile steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: npm cache-dependency-path: mobile/package-lock.json - run: npm ci - run: npm run typecheck