name: unit tests

on:
  push:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        python-version: ["3.9", "3.12"]
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install Ubuntu dependencies
        run: sudo apt update && sudo apt-get -y install gettext appstream pkg-config libcairo2-dev gir1.2-gtk-3.0 libgirepository1.0-dev libicu-dev libopencv-dev tesseract-ocr tesseract-ocr-all gir1.2-pango-1.0
      - name: Install Python dependencies
        run: |
          python -m pip install --upgrade pip wheel setuptools
          pip install opencv-python
          pip install -r requirements-dev.txt
          pip install .[ai]
          pip list
      - name: Run type checker
        run: mypy --ignore-missing-imports --exclude build .
      - name: Test with pytest
        run: pytest