diff --git a/.gitignore b/.gitignore index fb5029b..657cc74 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ Thumbs.db # composer vendor dir /vendor +# cubrid install dir +/cubrid # composer itself is not needed composer.phar diff --git a/.travis.yml b/.travis.yml index 6657fab..d3a51df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,9 @@ php: - hhvm - hhvm-nightly +env: + - CUBRID_VERSION=9.3.0/CUBRID-9.3.0.0206 CUBRID_PDO_VERSION=9.2.0.0001 + # run build against hhvm but allow them to fail # http://docs.travis-ci.com/user/build-configuration/#Rows-That-are-Allowed-To-Fail matrix: @@ -21,6 +24,15 @@ services: - elasticsearch - mongodb +# faster builds on new travis setup not using sudo +sudo: false + +# cache vendor dirs +cache: + directories: + - cubrid + - vendor + # try running against postgres 9.3 addons: postgresql: "9.3" @@ -35,9 +47,7 @@ install: - tests/unit/data/travis/memcache-setup.sh - tests/unit/data/travis/cubrid-setup.sh # codeception - - composer global require "codeception/codeception=2.0.*" - - composer global require "codeception/specify=*" - - composer global require "codeception/verify=*" + - composer global require "codeception/codeception=2.0.*" "codeception/specify=*" "codeception/verify=*" # basic and advanced application: - tests/unit/data/travis/setup-apps.sh diff --git a/tests/unit/data/sphinx/sphinx.conf b/tests/unit/data/sphinx/sphinx.conf index 909fdbd..583bcc5 100644 --- a/tests/unit/data/sphinx/sphinx.conf +++ b/tests/unit/data/sphinx/sphinx.conf @@ -68,7 +68,7 @@ source yii2_test_item_delta_src : yii2_test_item_src index yii2_test_article_index { source = yii2_test_article_src - path = /var/lib/sphinx/yii2_test_article + path = SPHINX_BASE_DIR/yii2_test_article docinfo = extern charset_type = sbcs } @@ -77,7 +77,7 @@ index yii2_test_article_index index yii2_test_item_index { source = yii2_test_item_src - path = /var/lib/sphinx/yii2_test_item + path = SPHINX_BASE_DIR/yii2_test_item docinfo = extern charset_type = sbcs } @@ -86,14 +86,14 @@ index yii2_test_item_index index yii2_test_item_delta_index : yii2_test_item_index { source = yii2_test_item_delta_src - path = /var/lib/sphinx/yii2_test_item_delta + path = SPHINX_BASE_DIR/yii2_test_item_delta } index yii2_test_rt_index { type = rt - path = /var/lib/sphinx/yii2_test_rt + path = SPHINX_BASE_DIR/yii2_test_rt rt_field = title rt_field = content rt_attr_uint = type_id @@ -118,15 +118,15 @@ searchd { listen = 127.0.0.1:9312 listen = 9306:mysql41 - log = /var/log/sphinx/searchd.log - query_log = /var/log/sphinx/query.log + log = SPHINX_BASE_DIR/searchd.log + query_log = SPHINX_BASE_DIR/query.log read_timeout = 5 max_children = 30 - pid_file = /var/run/sphinx/searchd.pid + pid_file = SPHINX_BASE_DIR/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work - binlog_path = /var/lib/sphinx + binlog_path = SPHINX_BASE_DIR } diff --git a/tests/unit/data/travis/cubrid-setup.sh b/tests/unit/data/travis/cubrid-setup.sh index 13b0a4b..67b4bf2 100755 --- a/tests/unit/data/travis/cubrid-setup.sh +++ b/tests/unit/data/travis/cubrid-setup.sh @@ -7,24 +7,74 @@ if (php --version | grep -i HipHop > /dev/null); then exit 0 fi +CWD=$(pwd) + # cubrid dbms -echo 'yes' | sudo add-apt-repository ppa:cubrid/cubrid -sudo apt-get update -sudo apt-get install cubrid -/etc/profile.d/cubrid.sh -sudo apt-get install cubrid-demodb +mkdir -p cubrid/$CUBRID_VERSION +cd cubrid +if (test -f $CUBRID_VERSION-linux.x86_64.tar.gz); then + echo "CUBRID is already installed" +else + wget http://ftp.cubrid.org/CUBRID_Engine/$CUBRID_VERSION-linux.x86_64.tar.gz -O $CUBRID_VERSION-linux.x86_64.tar.gz +fi + + cd $CUBRID_VERSION + tar xzf ../../$CUBRID_VERSION-linux.x86_64.tar.gz + cd ../.. + + +# setting cubrid env +CUBRID=$CWD/cubrid/$CUBRID_VERSION/CUBRID +CUBRID_DATABASES=$CUBRID/databases +CUBRID_LANG=en_US + +ld_lib_path=`printenv LD_LIBRARY_PATH` +if [ "$ld_lib_path" = "" ] +then + LD_LIBRARY_PATH=$CUBRID/lib +else + LD_LIBRARY_PATH=$CUBRID/lib:$LD_LIBRARY_PATH +fi + +SHLIB_PATH=$LD_LIBRARY_PATH +LIBPATH=$LD_LIBRARY_PATH +PATH=$CUBRID/bin:$CUBRID/cubridmanager:$PATH + +export CUBRID +export CUBRID_DATABASES +export CUBRID_LANG +export LD_LIBRARY_PATH +export SHLIB_PATH +export LIBPATH +export PATH + +# start cubrid +cubrid service start +# create and start the demo db +$CUBRID/demo/make_cubrid_demo.sh +cubrid server start demodb + +echo "" +echo "Installed CUBRID $CUBRID_VERSION" +echo "" # cubrid pdo install_pdo_cubrid() { - wget "http://pecl.php.net/get/PDO_CUBRID-9.2.0.0001.tgz" && - tar -zxf "PDO_CUBRID-9.2.0.0001.tgz" && - sh -c "cd PDO_CUBRID-9.2.0.0001 && phpize && ./configure && make && sudo make install" + if (test "! (-f PDO_CUBRID-$CUBRID_PDO_VERSION.tgz)"); then + wget "http://pecl.php.net/get/PDO_CUBRID-$CUBRID_PDO_VERSION.tgz" -O PDO_CUBRID-$CUBRID_PDO_VERSION.tgz + fi + tar -zxf "PDO_CUBRID-$CUBRID_PDO_VERSION.tgz" + sh -c "cd PDO_CUBRID-$CUBRID_PDO_VERSION && phpize && ./configure --prefix=$CWD/cubrid/PDO_CUBRID-$CUBRID_PDO_VERSION && make" - echo "extension=pdo_cubrid.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + echo "extension=$CWD/cubrid/PDO_CUBRID-$CUBRID_PDO_VERSION/modules/pdo_cubrid.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini return $? } install_pdo_cubrid > ~/pdo_cubrid.log || ( echo "=== PDO CUBRID BUILD FAILED ==="; cat ~/pdo_cubrid.log ) -echo "Installed CUBRID `dpkg -s cubrid |grep Version`" +echo "" +echo "Installed CUBRID PDO $CUBRID_PDO_VERSION" +echo "" + +cd .. diff --git a/tests/unit/data/travis/mongodb-setup.sh b/tests/unit/data/travis/mongodb-setup.sh index b79a897..1bcf100 100755 --- a/tests/unit/data/travis/mongodb-setup.sh +++ b/tests/unit/data/travis/mongodb-setup.sh @@ -2,10 +2,11 @@ # # install mongodb +mongod --version + echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini -sudo sh -c 'echo "setParameter = textSearchEnabled=true" >> /etc/mongodb.conf' -cat /etc/mongodb.conf -mongod --version +# enable text search +mongo --eval 'db.adminCommand( { setParameter: true, textSearchEnabled : true})' -sudo service mongodb restart +cat /etc/mongodb.conf diff --git a/tests/unit/data/travis/sphinx-setup.sh b/tests/unit/data/travis/sphinx-setup.sh index ba09595..09ddf57 100755 --- a/tests/unit/data/travis/sphinx-setup.sh +++ b/tests/unit/data/travis/sphinx-setup.sh @@ -2,19 +2,26 @@ SCRIPT=$(readlink -f "$0") CWD=$(dirname "$SCRIPT") +# work around https://github.com/travis-ci/travis-ci/issues/2728 +PATH=$PATH:/usr/local/sphinx-2.1.9/bin + +mkdir -p sphinx + +sed -i s\~SPHINX_BASE_DIR~$PWD/sphinx~g $CWD/../sphinx/sphinx.conf + # log files -sudo mkdir /var/log/sphinx -sudo touch /var/log/sphinx/searchd.log -sudo touch /var/log/sphinx/query.log -sudo chmod -R 777 /var/log/sphinx # ugly (for travis) +#sudo mkdir /var/log/sphinx +#sudo touch /var/log/sphinx/searchd.log +#sudo touch /var/log/sphinx/query.log +#sudo chmod -R 777 /var/log/sphinx # ugly (for travis) # spl dir -sudo mkdir /var/lib/sphinx -sudo chmod 777 /var/lib/sphinx # ugly (for travis) +#sudo mkdir /var/lib/sphinx +#sudo chmod 777 /var/lib/sphinx # ugly (for travis) # run dir pid -sudo mkdir /var/run/sphinx -sudo chmod 777 /var/run/sphinx # ugly (for travis) +#sudo mkdir /var/run/sphinx +#sudo chmod 777 /var/run/sphinx # ugly (for travis) # Setup source database mysql -D yiitest -u travis < $CWD/../sphinx/source.sql