# This file is a template, and might need editing before it works on your project.
# Official language image. Look for the different tagged releases at:
# https://hub.docker.com/r/library/plone/tags/
image: python:3.7-buster

# 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
    - venv/
    - downloads/
    - eggs/

# Set execution order: first run jobs on 'test' stage on parallel
# then run jobs on 'report' stage
stages:
  - test
  - report

before_script:
  - echo "deb http://ftp.de.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list
  - apt-get update
  - apt-get install -y firefoxdriver
  - apt-get install -y xvfb
  - python -V # Print out python version for debugging
  - pip install virtualenv
  - export LC_CTYPE=en_US.UTF-8
  - export LC_ALL=en_US.UTF-8
  - export LANG=en_US.UTF-8
  - python3 -m venv venv
  - source venv/bin/activate
  - pip install -r requirements.txt
  - buildout bootstrap
  - bin/buildout -n -c buildout.cfg

code-analysis:
  stage: test
  # still not available, see: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5004
  # success_with_warnings: True
  script:
    - tox -e black-check
    - tox -e py37-lint

test:
  stage: test
  script:
    - export DISPLAY=:99.0
    # - sh -e /etc/init.d/xvfb start
    - tox -r

coverage:
  stage: report
  script:
    - bin/createcoverage
    - bin/coverage html
    - bin/coverage report
  when: on_success

  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+\%)/'
  artifacts:
    paths:
      - htmlcov
