name: Unit tests

on: pull_request

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node: [ 18, 20, 22, 23 ]
    name: Node ${{ matrix.node }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}

      - name: Install docker-compose
        uses: KengoTODA/actions-setup-docker-compose@main
        with:
          version: '2.6.1'

      - name: Start containers
        run: docker-compose up -d --build

      - name: Install dependencies
        run: yarn

      - name: Run tests
        run: yarn test

      - name: Stop containers
        if: always()
        run: docker-compose down
