name: CI
on: 
  push:
    paths-ignore:
      - 'docs/**'
      - '**.md'
env:
  ZOOKEEPER_PEERS: localhost:2181
  KAFKA_PEERS: localhost:9092

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
       include:
        # - node-version: 12.x
        #   pnpm-version: 6
        - node-version: 14.x
          pnpm-version: 7
        - node-version: 16.x
          pnpm-version: 8
        - node-version: 18.x
          pnpm-version: 9
        - node-version: 20.x
          pnpm-version: 10
        - node-version: 22.x
          pnpm-version: 10
        - node-version: 24.x
          pnpm-version: 10
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Install Node - ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - uses: pnpm/action-setup@v4
        name: Install pnpm
        with:
          version: ${{ matrix.pnpm-version }}
          run_install: false

      # - name: Get pnpm store directory
      #   shell: bash
      #   run: |
      #     echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV


      # - uses: actions/cache@v4
      #   name: Setup pnpm cache
      #   with:
      #     path: ${{ env.STORE_PATH }}
      #     key: ${{ runner.os }}-pnpm-store-${{ matrix.pnpm-version }}-${{ hashFiles('**/pnpm-lock.yaml') }}
      #     restore-keys: |
      #       ${{ runner.os }}-pnpm-store-
      - name: Install Dependencies
        run: |
          pnpm install --no-frozen-lockfile

      - name: Test On Node ${{ matrix.node-version }}

        run: |
          npm run test
      - name: Coverage on Node ${{ matrix.node-version }}
        run: npm run coverage