Merge remote-tracking branch 'origin/master'
[phpmyadmin.git] / .travis.yml
blobdbc94987b4c6dce3848e622e48be24856ffdbda4
1 # The Travis setup:
2 # - run testsuite for every PHP version
3 # - run lint for every PHP version
4 # - run Selenium for single PHP version
6 dist: trusty
8 language: php
10 services:
11   - mysql
13 php:
14   - "7.1"
15   - "7.0"
16   - "5.6"
17   - "5.5"
18   - hhvm-3.12
19   - hhvm-3.18
21 sudo: required
23 env:
24   matrix:
25     - CI_MODE=test
26   global:
27     - TESTSUITE_USER=root
28     - TESTSUITE_URL=http://127.0.0.1:8000
30 install:
31   - ./test/ci-install-$CI_MODE
32   - if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then case "$TRAVIS_PHP_VERSION" in hhvm*) ;; *) phpenv config-add test/php-noprofile.ini ;; esac ; fi
34 before_script:
35   - export TESTSUITE_PASSWORD=`openssl rand -base64 30`
36   - export PATH=~/.composer/vendor/bin/:$PATH
37   - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS test"
38   - mysql -uroot < sql/create_tables.sql
39   - mysql -uroot -e "SET PASSWORD = PASSWORD('$TESTSUITE_PASSWORD')"
40   - ./test/start-local-server
42 script:
43   - ./scripts/generate-mo --quiet
44   - if [ $CI_MODE = test ] ; then ./test/ci-lint ; fi
45   - ./test/ci-$CI_MODE
47 after_script:
48   - if [ -f vendor/bin/coveralls ] ; then php vendor/bin/coveralls -v || true ; fi
49   - if [ -f vendor/bin/codacycoverage ] ; then php vendor/bin/codacycoverage clover || true ; fi
50   - if [ -f php.log ] ; then cat php.log ; fi
51   - if [ -f build/logs/phpunit.json ] ; then ./scripts/phpunit-top-tests build/logs/phpunit.json ; fi
53 after_success:
54   - bash <(curl -s https://codecov.io/bash)
56 matrix:
57   allow_failures:
58     - php: "7.0"
59       env: CI_MODE=selenium
60   fast_finish: true
61   include:
62     - php: "7.0"
63       env: CI_MODE=selenium
64     - php: "7.0"
65       env: CI_MODE=release
66     - php: "7.0"
67       env: CI_MODE=docs
68     - os: osx
69       language: generic
70       env: CI_MODE=test
71       before_install:
72         - brew tap homebrew/php
73         - brew update
74         - brew install gettext php70 mariadb
75         - brew link --force gettext
76         - curl https://getcomposer.org/installer | php
77         - ln -s "`pwd`/composer.phar" /usr/local/bin/composer
78         - mysql.server start
80 cache:
81   pip: true
82   directories:
83     - $HOME/.composer/cache/
84     - $HOME/browserstack
85     - $HOME/runkit
86 # Install APT packages
87 #  - git > 2.5.1 needed for worktrees
88 #  - mysql server does not seem to be always present on Travis Trusty environment
89 addons:
90   apt:
91     packages:
92     - git
93     - mysql-server-5.6