language: python
sudo: false
cache:
  pip: true
  directories:
  - eggs
  - downloads
python:
  - "2.7"
matrix:
  include:
    - python: "2.7"
      env: PLONE_VERSION=52
    - python: "3.6"
      env: PLONE_VERSION=52
      dist: xenial
    - python: "3.7"
      env: PLONE_VERSION=52
      dist: xenial
    - python: "3.8"
      env: PLONE_VERSION=52
      dist: xenial
  sudo: true
  fast_finish: true
before_install:
  - virtualenv -p `which python` .
  - mkdir -p $HOME/buildout-cache/{eggs,downloads}
  - mkdir $HOME/.buildout
  - echo "[buildout]" > $HOME/.buildout/default.cfg
  - echo "download-cache = $HOME/buildout-cache/downloads" >> $HOME/.buildout/default.cfg
  - echo "eggs-directory = $HOME/buildout-cache/eggs" >> $HOME/.buildout/default.cfg
  - bin/pip install -r requirements.txt -c constraints_plone$PLONE_VERSION.txt
#  - bin/buildout -N out:download-cache=downloads code-analysis:return-status-codes=True annotate
#  - bin/buildout -N buildout:download-cache=downloads code-analysis:return-status-codes=True
  - cp test_plone$PLONE_VERSION.cfg buildout.cfg

install:
  - bin/buildout -N -t 3 code-analysis:return-status-codes=True annotate
  - bin/buildout -N -t 3 code-analysis:return-status-codes=True

before_script:
  - wget "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz"
  - tar xfz geckodriver-v0.24.0-linux64.tar.gz
  - sudo mv geckodriver /usr/local/bin
  - 'export DISPLAY=:99.0'
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  - sleep 3

script:
# Run code-analysis, except on Python 3.6, which mysteriously fails to find zc.buildout.
  - python --version 2> /dev/stdout | grep 3.6 || bin/code-analysis
  - bin/test --all

after_success:
  - bin/createcoverage --output-dir=parts/test/coverage
  - bin/pip install coverage
  - bin/python -m coverage.pickle2json
  - bin/pip install -q coveralls
  - coveralls
