language: node_js

node_js:
  - "8"

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.9
  postgresql: "9.4"

cache: yarn

sudo: false

services:
  - postgresql
  - redis-server

install:
  - CC=gcc-4.9 CXX=g++-4.9 yarn install

before_script:
  - wget --no-check-certificate "https://download.cpy.re/ffmpeg/ffmpeg-release-3.0.2-64bit-static.tar.xz"
  - tar xf ffmpeg-release-3.0.2-64bit-static.tar.xz
  - mkdir -p $HOME/bin
  - cp ffmpeg-*-64bit-static/{ffmpeg,ffprobe,ffserver} $HOME/bin
  - export PATH=$HOME/bin:$PATH
  - export NODE_TEST_IMAGE=true
  - psql -c 'create database peertube_test1;' -U postgres
  - psql -c 'create database peertube_test2;' -U postgres
  - psql -c 'create database peertube_test3;' -U postgres
  - psql -c 'create database peertube_test4;' -U postgres
  - psql -c 'create database peertube_test5;' -U postgres
  - psql -c 'create database peertube_test6;' -U postgres
  - psql -c "create user peertube with password 'peertube';" -U postgres

matrix:
  include:
  - env: TEST_SUITE=misc
  - env: TEST_SUITE=api-fast
  - env: TEST_SUITE=api-slow
  - env: TEST_SUITE=cli
  - env: TEST_SUITE=lint

script:
  - travis_retry npm run travis -- "$TEST_SUITE"

after_failure:
  - cat test1/logs/all-logs.log
  - cat test2/logs/all-logs.log
  - cat test3/logs/all-logs.log
  - cat test4/logs/all-logs.log
  - cat test5/logs/all-logs.log
  - cat test6/logs/all-logs.log