name: Test

on:
    push:
        branches: ['**']
    pull_request:
        branches: ['**']

jobs:
    test:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - name: Use Node.js 20
              uses: actions/setup-node@v4
              with:
                  node-version: 20.11.1
            - name: Use node_modules cache
              uses: actions/cache@v4
              with:
                  path: node_modules
                  key: yarn-node-20-lock-${{ hashFiles('yarn.lock') }}
                  restore-keys: |
                      yarn-node-20-lock-
            - run: yarn install --frozen-lockfile
            - run: yarn lint
            - run: yarn test
            - run: yarn build
            - uses: actions/upload-artifact@v4
              with:
                  name: build-output
                  path: dist
                  if-no-files-found: error
            - run: yarn test:exports