image: python

# 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's cache doesn't store the python packages
# https://pip.pypa.io/en/stable/reference/pip_install/#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

stages:
- Static Analysis and Test

before_script:
- uname -a
- apt-get update && apt install -y libgl1-mesa-glx
- pip install -e .[dev]

flake8:
  image: python:3.9
  tags:
  - passoft
  stage: Static Analysis and Test
  script:
  - flake8 lemi2seed tests

mypy:
  image: python:3.9
  tags:
  - passoft
  stage: Static Analysis and Test
  script:
  - python -m mypy --config-file ./setup.cfg lemi2seed

python3.9:
  image: python:3.9
  tags:
  - passoft
  stage: Static Analysis and Test
  script:
  - coverage run --source="$CI_PROJECT_NAME" -m unittest discover
  - if [ "$?" -eq 0 ]; then echo $PYVER > .ci-internal/passed/$PYVER.txt; fi
  - coverage report -m
  coverage: '/TOTAL.+ ([0-9]{1,3}%)/'

python3.10:
  image: python:3.10
  tags:
  - passoft
  stage: Static Analysis and Test
  script:
  - coverage run --source="$CI_PROJECT_NAME" -m unittest discover
  - if [ "$?" -eq 0 ]; then echo $PYVER > .ci-internal/passed/$PYVER.txt; fi
  - coverage report -m
  coverage: '/TOTAL.+ ([0-9]{1,3}%)/'