libretime/.travis.yml
Lucas Bickel 9b3d0c90da mostly run analyzer tests on travis
* [x] regonfigured the build matrix with more php jobs and a separate python job (we can add more python jobs later)
* [x] run tests on travis' trusty beta container (it's closer to what we need anyway)
* [x] install packages needed for analyzer tests in build env
* [x] added docs on how to run nosetests locally
* [x] don't run initctl in analyzer setup so setup can also be used on travis (and add it to the install script directly)
* [x] ignore replaygain checks on travis (it has proven quite impossible to get the needed python-gi module to work in the provided virtualenv)

I tried a lot of solutions to get the replaygain checks to run. I needed to decide that this has gone far enough, maybe someone who is more of a pythonista than me can take a crack at it and get it solved. Even without running those tests on CI/CD there are still plenty others.

This PR only has parts of what are needed for getting python tests running on travis as per #15. I only took a quick shot at anything not analyzer and figured I would not be able to "fix" them without digging a bit deeper (ie. also getting rid of std_err_override).
2017-03-03 20:38:27 +01:00

87 lines
2.3 KiB
YAML

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
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:
- >
if [[ "$PYTHON" == false ]]; then
pushd airtime_mvc/tests
../../vendor/bin/phpunit
results=$?
popd
exit $results
fi
- >
if [[ "$PYTHON" == true ]]; then
pushd python_apps/airtime_analyzer
nosetests -a '!rgain'
results=$?
echo "replaygain tests where skipped due to not having a reliable replaygain install on travis."
popd
exit $results
fi