Browse Source
Travis support
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 durationremotes/origin/fix-10825
committed by
Morris Jobke
5 changed files with 267 additions and 0 deletions
-
2.scrutinizer.yml
-
58.travis.yml
-
141build/prepareTests.sh
-
65build/prepareTestsOracle.sh
-
1build/travis.php.ini
@ -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 |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue