diff --git a/.travis.yml b/.travis.yml index 72424902..6ede1baf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,52 @@ -language: generic -sudo: required -env: - matrix: - - NODE_VERSION=10.15.1 - DOCKER_IMAGE=carto/nodejs-xenial-pg101:latest - - NODE_VERSION=10.15.1 - DOCKER_IMAGE=carto/nodejs-xenial-pg1121:latest +sudo: false + +language: node_js + services: - - docker -before_install: docker pull ${DOCKER_IMAGE} -script: npm run test:docker + - redis-server + +env: + global: + - PGUSER=postgres + - PGDATABASE=postgres + - PGOPTIONS='-c client_min_messages=NOTICE' + +jobs: + include: + - env: POSTGRESQL_VERSION="10" POSTGIS_VERSION="2.4" + dist: xenial + - env: POSTGRESQL_VERSION="11" POSTGIS_VERSION="2.5" + dist: xenial + - env: POSTGRESQL_VERSION="12" POSTGIS_VERSION="3" + dist: bionic + +node_js: + - "10" + +install: + - npm ci + +script: + - if [[ $POSTGRESQL_VERSION == '10' ]]; then sudo add-apt-repository -y ppa:cartodb/gis; fi; + - sudo add-apt-repository -y ppa:cartodb/postgresql-$POSTGRESQL_VERSION + - sudo apt-get -q update + - 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 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-redis; else sudo apt-get install -y postgresql-plpython3-12 python3 python3-redis; fi; + - sudo pg_dropcluster --stop $POSTGRESQL_VERSION main + - sudo rm -rf /etc/postgresql/$POSTGRESQL_VERSION /var/lib/postgresql/$POSTGRESQL_VERSION /var/ramfs/postgresql/$POSTGRESQL_VERSION + - sudo pg_createcluster -u postgres $POSTGRESQL_VERSION main --start -p 5432 -- --auth-local trust + + - git clone https://github.com/CartoDB/cartodb-postgresql.git + - cd cartodb-postgresql && make && sudo make install && cd .. + + - createdb template_postgis + - psql -c "CREATE EXTENSION postgis" template_postgis + - if [[ $POSTGRESQL_VERSION == '12' ]]; then psql -c "CREATE EXTENSION postgis_raster" template_postgis; fi; + + - cp config/environments/test.js.example config/environments/test.js + - npm test + +after_failure: + - pg_lsclusters + - sudo cat /var/log/postgresql/postgresql-$POSTGRESQL_VERSION-main.log