name: CI — NoteLett 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 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Enable pnpm run: corepack enable - name: Build @bytelyst/* packages working-directory: learning_ai_common_plat run: | pnpm install --frozen-lockfile pnpm build - name: Install workspace dependencies run: pnpm install --frozen-lockfile - name: Backend lint run: pnpm --filter @notelett/backend run lint - name: Backend typecheck run: pnpm --filter @notelett/backend run typecheck - name: Backend tests run: pnpm --filter @notelett/backend run test env: DB_PROVIDER: memory JWT_SECRET: ci-test-secret-at-least-32-characters-long - name: Backend build run: pnpm --filter @notelett/backend run build web: name: Web — 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 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Enable pnpm run: corepack enable - name: Build @bytelyst/* packages working-directory: learning_ai_common_plat run: | pnpm install --frozen-lockfile pnpm build - name: Install workspace dependencies run: pnpm install --frozen-lockfile - name: Web lint run: pnpm --filter @notelett/web run lint - name: Web typecheck run: pnpm --filter @notelett/web run typecheck - name: Web tests run: pnpm --filter @notelett/web run test - name: Web build run: pnpm --filter @notelett/web run build mobile: name: Mobile — typecheck 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 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Enable pnpm run: corepack enable - name: Build @bytelyst/* packages working-directory: learning_ai_common_plat run: | pnpm install --frozen-lockfile pnpm build - name: Install workspace dependencies run: pnpm install --frozen-lockfile - run: pnpm --filter @notelett/mobile run typecheck