diff --git a/.travis.yml b/.travis.yml index 73e62115..c2e2e93a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ php: - 5.5 env: + - DB=mariadb - DB=mysql - DB=postgres @@ -30,7 +31,8 @@ before_script: - cd ext/board3/portal - sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'DROP DATABASE IF EXISTS phpbb_tests;' -U postgres; fi" - sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database phpbb_tests;' -U postgres; fi" - - sh -c "if [ '$DB' = 'mysql' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi" + - sh -c "if [ '$DB' = 'mariadb' ]; then travis/setup-mariadb.sh; fi" + - sh -c "if [ '$DB' = 'mysql' -o '$DB' = 'mariadb' ]; then mysql -e 'create database IF NOT EXISTS phpbb_tests;'; fi" - travis/install-php-extensions.sh - phpenv rehash - sh -c "if [ `php -r "echo (int) version_compare(PHP_VERSION, '5.3.19', '>=');"` = "1" ]; then travis/setup-webserver.sh; fi" diff --git a/travis/phpunit-mariadb-travis.xml b/travis/phpunit-mariadb-travis.xml new file mode 100644 index 00000000..1eaee5b7 --- /dev/null +++ b/travis/phpunit-mariadb-travis.xml @@ -0,0 +1,41 @@ + + + + + ../tests/ + tests/functional + tests/lint_test.php + + + ../tests/functional + + + + + + slow + + + + + + + + + + + + + + diff --git a/travis/setup-mariadb.sh b/travis/setup-mariadb.sh new file mode 100755 index 00000000..7e5c4e7d --- /dev/null +++ b/travis/setup-mariadb.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# @copyright (c) 2013 phpBB Group +# @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +# +set -e +set -x + +# MariaDB Series +VERSION='5.5' + +# Operating system codename, e.g. "precise" +OS_CODENAME=$(lsb_release --codename --short) + +# Manually purge MySQL to remove conflicting files (e.g. /etc/mysql/my.cnf) +sudo apt-get purge -qq mysql-common + +if ! which add-apt-repository > /dev/null +then + sudo apt-get update -qq + sudo apt-get install -qq python-software-properties +fi + +MIRROR_DOMAIN='ftp.osuosl.org' +sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db +sudo add-apt-repository "deb http://$MIRROR_DOMAIN/pub/mariadb/repo/$VERSION/ubuntu $OS_CODENAME main" +sudo apt-get update -qq + +# Pin repository in order to avoid conflicts with MySQL from distribution +# repository. See https://mariadb.com/kb/en/installing-mariadb-deb-files +# section "Version Mismatch Between MariaDB and Ubuntu/Debian Repositories" +echo " +Package: * +Pin: origin $MIRROR_DOMAIN +Pin-Priority: 1000 +" | sudo tee /etc/apt/preferences.d/mariadb + +sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password password rootpasswd" +sudo debconf-set-selections <<< "mariadb-server-$VERSION mysql-server/root_password_again password rootpasswd" +sudo apt-get install -qq mariadb-server + +# Set root password to empty string. +echo " +USE mysql; +UPDATE user SET Password = PASSWORD('') where User = 'root'; +FLUSH PRIVILEGES; +" | mysql -u root -prootpasswd + +mysql --version diff --git a/travis/setup-webserver.sh b/travis/setup-webserver.sh index 6d2fe1e0..ff086588 100755 --- a/travis/setup-webserver.sh +++ b/travis/setup-webserver.sh @@ -4,6 +4,7 @@ # @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 # set -e +set -x sudo apt-get update -qq sudo apt-get install -qq nginx realpath