image: python:latest

# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"

# Pip's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/topics/caching/
#
# If you want to also cache the installed packages, you have to install
# them in a virtualenv and cache it as well.
cache:
  paths:
    - .cache/pip
    - .tox

before_script:
  - python --version  # For debugging
  - pip install tox

test:
  script:
    - pip install poetry && pip install "playwright=="$(poetry show playwright | grep version | cut -f 2 -d ":" | tr -d " ")
    - playwright install firefox
    - playwright install-deps
    - tox -e python -- --browser firefox

test-pypy:
  image: pypy:3
  script:
    - pip install poetry && pip install "playwright=="$(poetry show playwright | grep version | cut -f 2 -d ":" | tr -d " ")
    - playwright install firefox
    - playwright install-deps
    - tox -e pypy3 -- --browser firefox

lint:
  script:
    - tox -e pylint,pylint-tests,flake,black,isort

mypy:
  script:
    - tox -e mypy