name: Test

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v1
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v1
        with:
          install: true
      - name: Build and push
        uses: docker/build-push-action@v2
        with:
          push: false
  test:
    runs-on: ubuntu-latest
    services:
      redis:
        image: redis:7-alpine
        ports:
          - 6379:6379
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: "16"
      - uses: pnpm/action-setup@v2
        with:
          version: 7
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: 1.64
      - name: Prepare
        run: |
          pnpm install
          pnpm run test:prepare
      - name: Install Playwright
        run: npx playwright install --with-deps
      - name: Run your tests
        run: pnpm run test:run
      - name: Upload test results
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: test-results
          path: test-results