name: Build and test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  main:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x]
    steps:
      - uses: actions/checkout@v7
      - uses: pnpm/action-setup@v2
        with:
          version: 10
      - name: Setting up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"
      - name: Enabling pre-post scripts
        run: pnpm config set enable-pre-post-scripts true
      - run: pnpm install
      - run: pnpm lint
      - name: Cache pnpm modules
        uses: actions/cache@v5
        with:
          path: ~/.pnpm-store
          key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}-
      - run: pnpm build
      - run: pnpm test:coverage
      - name: Upload coverage reports to Codecov
        uses: codecov/codecov-action@v7.0.0
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          slug: kinde-oss/kinde-remix-sdk
