aboutsummaryrefslogtreecommitdiffstats
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml133
1 files changed, 108 insertions, 25 deletions
diff --git a/.travis.yml b/.travis.yml
index 3570fe411..6938033ce 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,44 +1,127 @@
+#
+# Travis-CI configuration file
+#
+## configure things
+#
+
# see http://about.travis-ci.org/docs/user/languages/php/ for more hints
language: php
-# list any PHP version you want to test against
-php:
- # using major version aliases
+# use docker based containers
+sudo: false
+
+# Git branches whitelist to build on Travis CI
+branches:
+ only:
+ - master
+ - dev
- # aliased to a recent 5.6.x version
- - 5.6
- # aliased to a recent 7.x version
- - 7.0
- # aliased to a recent hhvm version
- - hhvm
+# Install additional software
+addons:
+ # Install dependencies for generating API documentation with doxygen
+ apt:
+ packages:
+ - doxygen
+ - doxygen-latex
+ - graphviz
+ - ttf-liberation
-# optionally specify a list of environments, for example to test different RDBMS
-#env:
-# - DB=mysql
-# - DB=pgsql
+# enable and start databases?
+#services:
+# - mariadb
+# - postgresql
+
+# any PHP version we want to test against, our unit tests require PHP>=5.6
+php:
+ - '5.6'
+ - '7.0'
+ #- hhvm
-# optionally set up exclutions and allowed failures in the matrix
+# list of environments to test
+env:
+ global:
+ # used for doxygen deployment script
+ - DOXYFILE: $TRAVIS_BUILD_DIR/util/Doxyfile
+ - GHP_REPO_REF: github.com/redmatrix/hubzilla.git
+ # Uncomment if a newer/specific version of Doxygen should be used
+ #- DOXY_VER: 1.8.12
+ # use matrix only for PHP and MySQL, all other combinations added through includes
+ matrix:
+ - DB=mysql
+
+# Matrix configuration details
matrix:
+ fast_finish: true
+ # Additional check combinations
+ include:
+ # PHP7, mariadb 10.1
+ - php: '7.0'
+ env: DB=mariadb MARIADB_VERSION=10.1
+ # use mariadb instead of MySQL
+ addons:
+ mariadb: '10.1'
+ # PHP7, PostgreSQL 9.4
+ - php: '7.0'
+ env: DB=pgsql POSTGRESQL_VERSION=9.4
+ # Use newer postgres than 9.1 default
+ addons:
+ postgresql: '9.4'
+ # Exclude from default matrix combinations
# exclude:
# - php: hhvm
# env: DB=pgsql # PDO driver for pgsql is unsupported by HHVM (3rd party install for support)
- allow_failures:
- - php: hhvm
-# execute any number of scripts before the test run, custom env's are available as variables
-#before_script:
-# - if [[ "$DB" == "pgsql" ]]; then psql -c "DROP DATABASE IF EXISTS hello_world_test;" -U postgres; fi
-# - if [[ "$DB" == "pgsql" ]]; then psql -c "create database hello_world_test;" -U postgres; fi
-# - if [[ "$DB" == "mysql" ]]; then mysql -e "create database IF NOT EXISTS hello_world_test;" -uroot; fi
+# cache composer downloads between runs
+cache:
+ directories:
+ - $HOME/.composer/cache
+
+
+#
+## execute things
+#
+
+before_install:
+ - travis_retry composer self-update
+
+# Install composer dev libs
install:
- - composer install --optimize-autoloader
+ - travis_retry composer install --optimize-autoloader
+
+# execute any number of scripts before the test run, custom env's are available as variables
+before_script:
+ # Some preparation tasks of environment
+ - ./tests/travis/prepare.sh
+ # DB specific prepare scripts
+ - if [[ "$DB" == "mysql" ]]; then ./tests/travis/prepare_mysql.sh; fi
+ - if [[ "$DB" == "mariadb" ]]; then ./tests/travis/prepare_mysql.sh; fi
+ - if [[ "$DB" == "pgsql" ]]; then ./tests/travis/prepare_pgsql.sh; fi
# omitting "script:" will default to phpunit
-# use the $DB env variable to determine the phpunit.xml to use
-script: vendor/bin/phpunit tests/unit/
+script: ./vendor/bin/phpunit -c tests/phpunit-$DB.xml
+
+after_success:
+ # Generate API documentation and deploy it to gh-pages
+ - ./tests/travis/gen_apidocs.sh
+#after_failure:
+
+# Deploying a release to GitHub when tagging in master
+# Waiting for upcoming 'Build Stages' Q1/Q2 2017 to make generation of API docs
+# and release packages cleaner. https://github.com/travis-ci/travis-ci/issues/929
+#before_deploy:
+#deploy:
+# skip_cleaning: true
+# provider: releases
+# on:
+# tags: true
+#after_deploy:
+
+#after_script:
+
+
# configure notifications (email, IRC, campfire etc)
-notifications:
+#notifications:
# irc: "irc.freenode.org#yourfavouriteroomfortravis"
# a plugin/script to post to a hubzilla channel would be neat here