name: RobotTests
on:
  push:
    branches:
      - master
      - next
  pull_request:


jobs:
  test:
    name: Run Robot Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Pull images
        run: |
          cp .env.example .env
          docker compose version
          docker compose pull

      - name: Docker cache
        uses: satackey/action-docker-layer-caching@v0.0.11
        continue-on-error: true

      - name: Start the service
        run: |
          docker compose up -d back postgres traefik meilisearch --wait

      - name: Perform healthchecks
        run: |
          docker compose ps -a
          docker compose logs
          wget --retry-connrefused --retry-on-http-error=502 http://localhost:8901/api/health || (docker compose logs && exit 1)

      - name: Run robot tests
        run: |
          pip install -r back/tests/robot/requirements.txt
          robot -d out back/tests/robot/

      - name: Show logs
        if: failure()
        run: docker compose logs

      - uses: actions/upload-artifact@v4
        with:
          name: results
          path: out

