name: package-manager-ci
on:
  push:
    paths-ignore:
        - 'docs/**'
        - '*.md'
  pull_request:
    paths-ignore:
        - 'docs/**'
        - '*.md'
jobs:
  pnpm:
    name: pnpm package manager on ${{ matrix.node-version }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macOS-latest, windows-latest]
        node-version: [12, 14, 16]
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - name: Use pnpm
        uses: pnpm/action-setup@v2.2.1
        with:
          version: ^6.0.0
      - name: Install dependancies
        run: pnpm install
      - name: Tests
        shell: bash
        run: pnpm run test:ci

  yarn-pnp:
    name: yarn-pnp package manager on ${{ matrix.node-version }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macOS-latest]
        node-version: [12, 14, 16]
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - name: Use yarn
        run: |
          npm install -g yarn
          yarn set version berry
          echo "nodeLinker: pnp" >> .yarnrc.yml
          echo "pnpMode: loose" >> .yarnrc.yml
          yarn add -D pino-elasticsearch@^6.0.0
          yarn install
        env:
          # needed due the yarn.lock file in repository's .gitignore
          YARN_ENABLE_IMMUTABLE_INSTALLS: false
      - name: Tests
        shell: bash
        run: yarn run test:yarn
