# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/python/tags/
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"

# 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:
  - Build Env and Test
before_script:
  - pip install -e .[dev]
  - apt-get update && apt install -y libgl1-mesa-glx libxkbcommon-x11-0 libegl1 libdbus-1-3

flake8:
  image: python:3.11
  tags:
    - passoft
  stage: Build Env and Test
  script:
    - flake8 --exclude sohstationviewer/view/ui,sohstationviewer/controller/core/,sohstationviewer/main.py
    - flake8 tests

python3.9:
  image: python:3.9
  tags:
    - passoft
  stage: Build Env and Test
  script:
    - python -m unittest

python3.10:
  image: python:3.10
  tags:
    - passoft
  stage: Build Env and Test
  script:
    - python -m unittest

python3.11:
  image: python:3.11
  tags:
    - passoft
  stage: Build Env and Test
  script:
    - python -m unittest

check-backup-db:
  tags:
    - passoft
  stage: Build Env and Test
  before_script:
    - ''
  script:
    - |-
      if ! cmp sohstationviewer/database/soh.db sohstationviewer/database/backup.db; then
        echo "Backup database (sohstationviewer/database/backup.db) is different from working database (sohstationviewer/database/soh.db). Please copy the working database to the backup database."
        exit 1
      fi

check-changelog:
  tags:
    - passoft
  stage: Build Env and Test
  before_script:
    - ''
  script:
    - |-
      if ! cmp sohstationviewer/CHANGELOG.rst HISTORY.rst; then
        echo "The changelog is different from (sohstationviewer/CHANGELOG) is different from the history file (HISTORY.rst). Please ensure both files have the same content."
        exit 1
      fi
