Travis support
* use PHPUnit 4.x * force php memory limit on travis to 1024MB * create script for travis * whitelist branches master, stable5 and stable6 on travis (and PRs) * sqlplus64 * conditional JS tests and ocular temporal removal * enable scrutinizer code coverage * move oracle to top to decrease overall test duration
This commit is contained in:
parent
892d824804
commit
472d896ce9
|
@ -27,3 +27,5 @@ imports:
|
||||||
- javascript
|
- javascript
|
||||||
- php
|
- php
|
||||||
|
|
||||||
|
tools:
|
||||||
|
external_code_coverage: true
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
language: php
|
||||||
|
php:
|
||||||
|
- 5.3
|
||||||
|
- 5.4
|
||||||
|
- 5.5
|
||||||
|
- 5.6
|
||||||
|
- hhvm
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- php: 5.4
|
||||||
|
env: DB=oracle
|
||||||
|
- php: 5.4
|
||||||
|
env: DB=pgsql
|
||||||
|
- php: 5.4
|
||||||
|
env: DB=mysql
|
||||||
|
allow_failures:
|
||||||
|
- php: hhvm
|
||||||
|
fast_finish: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
matrix:
|
||||||
|
- DB=sqlite
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
# setup databases
|
||||||
|
- wget https://raw.githubusercontent.com/owncloud/administration/master/travis-ci/setup_databases.sh
|
||||||
|
- bash ./setup_databases.sh $DB
|
||||||
|
|
||||||
|
# Additional PHP config
|
||||||
|
- if [[ $HHVM == false ]] ; then phpenv config-add build/travis.php.ini ; fi
|
||||||
|
|
||||||
|
# fetch Ocular (for test coverage upload)
|
||||||
|
- wget https://scrutinizer-ci.com/ocular.phar
|
||||||
|
|
||||||
|
# call setup for tests
|
||||||
|
- build/prepareTests.sh $DB
|
||||||
|
|
||||||
|
script:
|
||||||
|
- phpunit --version
|
||||||
|
# Run PHP lint for each PHP version
|
||||||
|
- if [[ $DB == 'sqlite' ]] ; then ant -f build/build.xml -Dbasedir=. prepare lint ; fi
|
||||||
|
|
||||||
|
# Run tests
|
||||||
|
- phpunit --configuration tests/phpunit-autotest.xml --coverage-clover tests/autotest-clover-$DB.xml --verbose --debug
|
||||||
|
|
||||||
|
# Run JS tests just once (see test matrix - mysql is just run once)
|
||||||
|
- if [[ $DB == 'mysql' ]] ; then ./autotest-js.sh ; fi
|
||||||
|
|
||||||
|
# Upload coverage report
|
||||||
|
- php ocular.phar code-coverage:upload --format=php-clover tests/autotest-clover-$DB.xml
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- stable5
|
||||||
|
- stable6
|
||||||
|
- stable7
|
|
@ -0,0 +1,141 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# ownCloud
|
||||||
|
#
|
||||||
|
# @author Thomas Müller
|
||||||
|
# @author Morris Jobke
|
||||||
|
# @copyright 2012, 2013 Thomas Müller thomas.mueller@tmit.eu
|
||||||
|
# @copyright 2014 Morris Jobke hey@morrisjobke.de
|
||||||
|
#
|
||||||
|
|
||||||
|
DATABASENAME=oc_autotest
|
||||||
|
DATABASEUSER=oc_autotest
|
||||||
|
ADMINLOGIN=admin
|
||||||
|
BASEDIR=$PWD
|
||||||
|
|
||||||
|
# check for database parameter
|
||||||
|
if [ $1 ]; then
|
||||||
|
DBCONFIGS="sqlite mysql pgsql oracle"
|
||||||
|
FOUND=0
|
||||||
|
for DBCONFIG in $DBCONFIGS; do
|
||||||
|
if [ $1 = $DBCONFIG ]; then
|
||||||
|
FOUND=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ $FOUND = 0 ]; then
|
||||||
|
echo -e "Unknown database config name \"$1\"\n" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Please pass in a database to use as first parameter" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if config dir and file is writable
|
||||||
|
if ! [[ -w config && ( !( -e config/config.php ) || -w config/config.php ) ]]; then
|
||||||
|
echo "Please enable write permissions on config and config/config.php" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# use tmpfs for datadir - should speedup unit test execution
|
||||||
|
if [ -d /dev/shm ]; then
|
||||||
|
DATADIR=/dev/shm/data-autotest
|
||||||
|
else
|
||||||
|
DATADIR=$BASEDIR/data-autotest
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Setup environment for $1 testing ..."
|
||||||
|
# revert changes to tests/data
|
||||||
|
git checkout tests/data/*
|
||||||
|
|
||||||
|
# reset data directory
|
||||||
|
rm -rf $DATADIR
|
||||||
|
mkdir $DATADIR
|
||||||
|
|
||||||
|
cp tests/preseed-config.php config/config.php
|
||||||
|
|
||||||
|
# # # # # #
|
||||||
|
# SQLite #
|
||||||
|
# # # # # #
|
||||||
|
if [ "$1" == "sqlite" ] ; then
|
||||||
|
cat > ./config/autoconfig.php <<DELIM
|
||||||
|
<?php
|
||||||
|
\$AUTOCONFIG = array (
|
||||||
|
'installed' => false,
|
||||||
|
'dbtype' => 'sqlite',
|
||||||
|
'dbtableprefix' => 'oc_',
|
||||||
|
'adminlogin' => '$ADMINLOGIN',
|
||||||
|
'adminpass' => 'admin',
|
||||||
|
'directory' => '$DATADIR',
|
||||||
|
);
|
||||||
|
DELIM
|
||||||
|
fi
|
||||||
|
|
||||||
|
# # # # #
|
||||||
|
# MySQL #
|
||||||
|
# # # # #
|
||||||
|
if [ "$1" == "mysql" ] ; then
|
||||||
|
cat > ./config/autoconfig.php <<DELIM
|
||||||
|
<?php
|
||||||
|
\$AUTOCONFIG = array (
|
||||||
|
'installed' => false,
|
||||||
|
'dbtype' => 'mysql',
|
||||||
|
'dbtableprefix' => 'oc_',
|
||||||
|
'adminlogin' => '$ADMINLOGIN',
|
||||||
|
'adminpass' => 'admin',
|
||||||
|
'directory' => '$DATADIR',
|
||||||
|
'dbuser' => '$DATABASEUSER',
|
||||||
|
'dbname' => '$DATABASENAME',
|
||||||
|
'dbhost' => 'localhost',
|
||||||
|
'dbpass' => 'owncloud',
|
||||||
|
);
|
||||||
|
DELIM
|
||||||
|
fi
|
||||||
|
|
||||||
|
# # # # # # # #
|
||||||
|
# PostgreSQL #
|
||||||
|
# # # # # # # #
|
||||||
|
if [ "$1" == "pgsql" ] ; then
|
||||||
|
cat > ./config/autoconfig.php <<DELIM
|
||||||
|
<?php
|
||||||
|
\$AUTOCONFIG = array (
|
||||||
|
'installed' => false,
|
||||||
|
'dbtype' => 'pgsql',
|
||||||
|
'dbtableprefix' => 'oc_',
|
||||||
|
'adminlogin' => '$ADMINLOGIN',
|
||||||
|
'adminpass' => 'admin',
|
||||||
|
'directory' => '$DATADIR',
|
||||||
|
'dbuser' => '$DATABASEUSER',
|
||||||
|
'dbname' => '$DATABASENAME',
|
||||||
|
'dbhost' => 'localhost',
|
||||||
|
'dbpass' => 'owncloud',
|
||||||
|
);
|
||||||
|
DELIM
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# # # # # #
|
||||||
|
# Oracle #
|
||||||
|
# # # # # #
|
||||||
|
if [ "$1" == "oracle" ] ; then
|
||||||
|
build/prepareTestsOracle.sh $DATABASENAME $DATABASEUSER $ADMINLOGIN $DATADIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Trigger ownCloud installation"
|
||||||
|
php -f index.php | grep -i -C9999 error && echo "Error during setup" && exit 101
|
||||||
|
|
||||||
|
echo "Enable apps ..."
|
||||||
|
cd tests
|
||||||
|
php -f enable_all.php | grep -i -C9999 error && echo "Error during setup" && exit 101
|
||||||
|
cd $BASEDIR
|
||||||
|
|
||||||
|
# show environment
|
||||||
|
echo "ownCloud configuration:"
|
||||||
|
cat $BASEDIR/config/config.php
|
||||||
|
|
||||||
|
echo "ownCloud data directory:"
|
||||||
|
ls -ll $DATADIR
|
||||||
|
|
||||||
|
echo "owncloud.log:"
|
||||||
|
cat $DATADIR/owncloud.log
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# ownCloud - prepareTestOracle.sh
|
||||||
|
#
|
||||||
|
# @author Morris Jobke
|
||||||
|
# @copyright 2014 Morris Jobke hey@morrisjobke.de
|
||||||
|
#
|
||||||
|
|
||||||
|
DATABASENAME=$1
|
||||||
|
DATABASEUSER=$2
|
||||||
|
ADMINLOGIN=$3
|
||||||
|
DATADIR=$4
|
||||||
|
|
||||||
|
# set oracle home if it is not set
|
||||||
|
TRAVIS_ORACLE_HOME="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
|
||||||
|
[ -z "$ORACLE_HOME" ] && ORACLE_HOME=$TRAVIS_ORACLE_HOME
|
||||||
|
|
||||||
|
echo "Load Oracle environment variables so that we can run 'sqlplus'."
|
||||||
|
. $ORACLE_HOME/bin/oracle_env.sh
|
||||||
|
|
||||||
|
echo "drop the database"
|
||||||
|
sqlplus64 -s -l / as sysdba <<EOF
|
||||||
|
drop user $DATABASENAME cascade;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "create the database"
|
||||||
|
sqlplus64 -s -l / as sysdba <<EOF
|
||||||
|
create user $DATABASENAME identified by owncloud;
|
||||||
|
alter user $DATABASENAME default tablespace users
|
||||||
|
temporary tablespace temp
|
||||||
|
quota unlimited on users;
|
||||||
|
grant create session
|
||||||
|
, create table
|
||||||
|
, create procedure
|
||||||
|
, create sequence
|
||||||
|
, create trigger
|
||||||
|
, create view
|
||||||
|
, create synonym
|
||||||
|
, alter session
|
||||||
|
to $DATABASENAME;
|
||||||
|
exit;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# there was a maximum cursor limit exceed
|
||||||
|
# therefore increase the limit
|
||||||
|
sqlplus64 -s -l / as sysdba <<EOF
|
||||||
|
ALTER SYSTEM SET open_cursors = 1000 SCOPE=BOTH;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > ./config/autoconfig.php <<DELIM
|
||||||
|
<?php
|
||||||
|
\$AUTOCONFIG = array (
|
||||||
|
'installed' => false,
|
||||||
|
'dbtype' => 'oci',
|
||||||
|
'dbtableprefix' => 'oc_',
|
||||||
|
'adminlogin' => '$ADMINLOGIN',
|
||||||
|
'adminpass' => 'admin',
|
||||||
|
'directory' => '$DATADIR',
|
||||||
|
'dbuser' => '$DATABASEUSER',
|
||||||
|
'dbname' => 'XE',
|
||||||
|
'dbhost' => 'localhost',
|
||||||
|
'dbpass' => 'owncloud',
|
||||||
|
);
|
||||||
|
DELIM
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
memory_limit = 1024M
|
Loading…
Reference in New Issue