---
stages:
  - tox
  - documentation
  - sonarqube
include:
  - docs/.gitlab-ci.yml

####################################  tox   -   Testing and linting
run-tox-pipeline:
  stage: tox
  tags:
    - docker-executor
  image: python:3.10

  services:
    - postgres:15.4


  # Change pip's cache directory to be inside the project directory since we can
  # only cache local items.
  variables:
    POSTGRES_DB: gso-test-db
    POSTGRES_USER: nwa
    POSTGRES_PASSWORD: nwa
    DATABASE_URI_TEST: 'postgresql://nwa:nwa@postgres:5432/gso-test-db'
    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

  before_script:
    - pip install virtualenv
    - virtualenv venv
    - . venv/bin/activate

  script:
    - pip install tox
    - tox

  artifacts:
    paths:
      - htmlcov

sonarqube:
  stage: sonarqube
  image: sonarsource/sonar-scanner-cli
  script:
    - sonar-scanner
