dist: trusty
language: php
php:
# the latest and greatest, has some issues that are excluded below in matrix.allow_failures
- 7.1
# the 7.0 build demonstrates that everything is basically ok for 7.0, users might want to wait for 7.1 to run it
- 7.0
# folks who prefer running on 5.x should be using 5.6 in most cases, 5.4 is no in the matrix since noone should use it
- 5.6
# this is in for centos support, it's still the default on CentOS 7.3 and there were some lang changes after 5.4
- 5.4
services:
- postgresql
- rabbitmq
env:
  global:
  - ENVIRONMENT=testing
  - LIBRETIME_LOG_DIR=/tmp/log/libretime
  matrix:
  - PYTHON=false
  - PYTHON=true
matrix:
  allow_failures:
  # there are currently some testing issues with DateTime precision on 7.1
  - env: PYTHON=false
    php: 7.1
  exclude:
  # by excluding all of python we make way to just runu python tests in one seperate instance
  - env: PYTHON=true
  include:
  # using latest to run python on since it will last the longest
  - php: 7.1 
    env: PYTHON=true
addons:
  apt:
    packages:
    - silan
    - liquidsoap
    - liquidsoap-plugin-mad
    - liquidsoap-plugin-taglib
    - liquidsoap-plugin-flac
    - liquidsoap-plugin-ogg
    - liquidsoap-plugin-lame
    - liquidsoap-plugin-faad
    - liquidsoap-plugin-vorbis
    - liquidsoap-plugin-opus
    - python-nose
    - python-rgain
    - python-gst-1.0
    - mp3gain
install:
- >
    if [[ "$PYTHON" == false ]]; then
      composer install
    fi
- >
    if [[ "$PYTHON" == true ]]; then
      pip install --user mkdocs 
      pushd python_apps/airtime_analyzer 
      python setup.py install --dry-run --no-init-script
      popd
    fi
before_script:
# prepare the database as per docs/testing.md
- psql -c 'CREATE DATABASE libretime;' -U postgres
- psql -c "CREATE USER libretime WITH PASSWORD 'libretime';" -U postgres
- psql -c 'GRANT CONNECT ON DATABASE libretime TO libretime;' -U postgres
- psql -c 'ALTER USER libretime CREATEDB;' -U postgres
- mkdir -p /tmp/log/libretime
script:
- ./travis/php.sh
- ./travis/python.sh
deploy:
  provider: pages
  skip_cleanup: true
  local_dir: build/docs
  github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
  target_branch: master
  repo: LibreTime/LibreTime.github.io
  project_name: LibreTime
  fqdn: libretime.org
  name: R. LibreTime DocBot
  on:
    branch: master
    condition: $PYTHON = true