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
								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