diff --git a/shippable.yml b/shippable.yml new file mode 100644 index 00000000000..d7328174d3c --- /dev/null +++ b/shippable.yml @@ -0,0 +1,81 @@ +language: php + +# run tests on php misc php versions +php: + - 5.4 + - 5.5 + - 5.6 + +# execute unit tests, integration test stubs and integration tests using legacy storage engine +env: + global: + - DB_NAME="testdb" + matrix: + # If SYMFONY_VERSION is not specified, will take the latest available. + - TEST_CONFIG="phpunit.xml" + - TEST_CONFIG="phpunit.xml" SYMFONY_VERSION="~2.6@beta" + - TEST_CONFIG="phpunit-integration-legacy.xml" SYMFONY_VERSION="~2.6@beta" + - TEST_CONFIG="phpunit-integration-legacy.xml" DB="postgresql" DATABASE="pgsql://postgres@localhost/$DB_NAME" + - TEST_CONFIG="phpunit-integration-legacy.xml" DB="mysql" DATABASE="mysql://root@localhost/$DB_NAME" + - SOLR_VERSION="4.10.1" TEST_CONFIG="phpunit-integration-legacy-solr.xml" + - ELASTICSEARCH_VERSION="1.4.2" TEST_CONFIG="phpunit-integration-legacy-elasticsearch.xml" + +matrix: + exclude: +# 5.4 run: unit test + postgres integration test + - php: 5.4 + env: TEST_CONFIG="phpunit.xml" SYMFONY_VERSION="~2.6@beta" + - php: 5.4 + env: TEST_CONFIG="phpunit-integration-legacy.xml" SYMFONY_VERSION="~2.6@beta" + - php: 5.4 + env: TEST_CONFIG="phpunit-integration-legacy.xml" DB="mysql" DATABASE="mysql://root@localhost/$DB_NAME" + - php: 5.4 + env: SOLR_VERSION="4.10.1" TEST_CONFIG="phpunit-integration-legacy-solr.xml" + - php: 5.4 + env: ELASTICSEARCH_VERSION="1.4.2" TEST_CONFIG="phpunit-integration-legacy-elasticsearch.xml" +# 5.5 run: unit test (Symfony 2.3) + mysql integration test + solr 4.x integration test + - php: 5.5 + env: TEST_CONFIG="phpunit.xml" + - php: 5.5 + env: TEST_CONFIG="phpunit-integration-legacy.xml" SYMFONY_VERSION="~2.6@beta" + - php: 5.5 + env: TEST_CONFIG="phpunit-integration-legacy.xml" DB="postgresql" DATABASE="pgsql://postgres@localhost/$DB_NAME" +# 5.6 run: unit test + sqlite integration test + - php: 5.6 + env: TEST_CONFIG="phpunit.xml" SYMFONY_VERSION="~2.6@beta" + - php: 5.6 + env: TEST_CONFIG="phpunit-integration-legacy.xml" DB="postgresql" DATABASE="pgsql://postgres@localhost/$DB_NAME" + - php: 5.6 + env: TEST_CONFIG="phpunit-integration-legacy.xml" DB="mysql" DATABASE="mysql://root@localhost/$DB_NAME" + - php: 5.6 + env: SOLR_VERSION="4.10.1" TEST_CONFIG="phpunit-integration-legacy-solr.xml" + - php: 5.6 + env: ELASTICSEARCH_VERSION="1.4.2" TEST_CONFIG="phpunit-integration-legacy-elasticsearch.xml" + +# test only master (+ Pull requests) +branches: + only: + - 5.4 + - stable-5.3 + - stable-5.1 + +# setup requirements for running unit tests +before_script: + # Prepare system + - if [ "$TEST_CONFIG" != "" ] ; then ./bin/.travis/prepare_unittest.sh ; fi + # Detecting timezone issues by testing on random timezone + - TEST_TIMEZONES=("America/New_York" "Asia/Calcutta" "UTC") + - TEST_TIMEZONE=${TEST_TIMEZONES["`shuf -i 0-2 -n 1`"]} + - echo "$TEST_TIMEZONE" + +# execute phpunit as the script command +script: + - if [ "$TEST_CONFIG" != "" ] ; then php -d date.timezone=$TEST_TIMEZONE -d memory_limit=-1 vendor/bin/phpunit -c $TEST_CONFIG ; fi + +# disable mail notifications +notification: + email: false + +# reduce depth (history) of git checkout +git: + depth: 30