language: c
sudo: required

env:
  global:
    - PAGER=cat
    - PGUSER=postgres
    - PGDATABASE=postgres
    - PGOPTIONS='-c client_min_messages=NOTICE'

jobs:
  include:
    - env: POSTGRESQL_VERSION="9.6" POSTGIS_VERSION="2.5"
      dist: xenial
    - env: POSTGRESQL_VERSION="10" POSTGIS_VERSION="2.5"
      dist: xenial
    - env: POSTGRESQL_VERSION="11" POSTGIS_VERSION="2.5"
      dist: xenial
    - env: POSTGRESQL_VERSION="12" POSTGIS_VERSION="3"
      dist: bionic

before_install:

  - sudo apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests postgresql-$POSTGRESQL_VERSION postgresql-client-$POSTGRESQL_VERSION postgresql-server-dev-$POSTGRESQL_VERSION postgresql-common
  - if [[ $POSTGRESQL_VERSION == '9.6' ]]; then sudo apt-get install -y postgresql-contrib-9.6; fi;
  - sudo apt-get install -y --allow-unauthenticated postgresql-$POSTGRESQL_VERSION-postgis-$POSTGIS_VERSION postgresql-$POSTGRESQL_VERSION-postgis-$POSTGIS_VERSION-scripts postgis

  # For pre12, install plpython2. For PG12 install plpython3
  - if [[ $POSTGRESQL_VERSION != '12' ]]; then sudo apt-get install -y postgresql-plpython-$POSTGRESQL_VERSION python python-pip python-software-properties python-joblib python-nose python-setuptools; else sudo apt-get install -y postgresql-plpython3-12 python3 python3-pip python3-software-properties python3-joblib python3-nose python3-setuptools; fi;
  - if [[ $POSTGRESQL_VERSION == '12' ]]; then echo -e "joblib==0.11\nnumpy==1.13.3\nscipy==0.19.1\npysal==1.14.3\nscikit-learn==0.19.1" > ./src/py/crankshaft/requirements.txt && sed -i -e "s/.*install_requires.*$/    install_requires=['joblib==0.11.0', 'numpy==1.13.3', 'scipy==0.19.1', 'pysal==1.14.3', 'scikit-learn==0.19.1'],/g" ./src/py/crankshaft/setup.py; fi;

  - sudo pg_dropcluster --stop $POSTGRESQL_VERSION main
  - sudo rm -rf /etc/postgresql/$POSTGRESQL_VERSION /var/lib/postgresql/$POSTGRESQL_VERSION
  - sudo pg_createcluster -u postgres $POSTGRESQL_VERSION main --start -- -A trust
  - export PGPORT=$(pg_lsclusters | grep $POSTGRESQL_VERSION | awk '{print $3}')

install:
  - sudo make install

script:
  - make test
  - ./check-compatibility.sh

after_failure:
  - pg_lsclusters
  - cat src/pg/test/regression.diffs
  - echo $PGPORT
  - cat /var/log/postgresql/postgresql-$POSTGRESQL_VERSION-main.log
