123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- sudo: false
- language: php
- php:
- - 7.0
- - 7.1
- matrix:
- include:
- - php: 5.4 # lowest versions of all dependencies
- env: PHALCON=2.1.x SYMFONY=2.7.19 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 2.7.*
- - php: 5.5
- env: dependencies=lowest SYMFONY_DEPRECATIONS_HELPER=weak
- - php: 5.6
- env: SYMFONY=2.8.12 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 2.8.*
- addons:
- postgresql: "9.2"
- branches:
- except:
- - gh-pages
- cache:
- directories:
- - vendor
- - $HOME/.composer/cache
- services:
- - mongodb
- - rabbitmq
- - postgresql
- - redis
- install:
- - 'pecl install mongodb'
- #- echo "extension = mongodb.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- - composer self-update && composer --version
- - if [ -n "$CI_USER_TOKEN" ]; then composer config github-oauth.github.com ${CI_USER_TOKEN}; echo "Configured Github token"; fi;
- - composer global require "fxp/composer-asset-plugin:~1.1.1"
- - '[[ -z "$SYMFONY" ]] || composer require symfony/finder=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/yaml=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/console=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/event-dispatcher=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/css-selector=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/dom-crawler=~$SYMFONY --no-update --ignore-platform-reqs'
- - '[[ -z "$SYMFONY" ]] || composer require symfony/browser-kit=~$SYMFONY --no-update --ignore-platform-reqs'
- - composer_parameters="-n --prefer-dist" # this variable will be used in all composer install commands
- - '[[ "$dependencies" != "lowest" ]] || composer_parameters="$composer_parameters --prefer-lowest"'
- - composer update $composer_parameters
- - composer_parameters="$composer_parameters --no-dev" # Codeception needs dev dependencies, but frameworks don't
- # Yii2
- - composer create-project "yiisoft/yii2-app-basic:@dev" frameworks-yii-basic --no-dev
- # Phalcon
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || [[ -z "$PHALCON" ]] || git clone -q --depth=1 https://github.com/phalcon/cphalcon.git -b $PHALCON'
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || [[ ! -z "$PHALCON" ]] || git clone -q --depth=1 https://github.com/phalcon/cphalcon.git'
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || (cd cphalcon/build; bash install &>/dev/null && phpenv config-add ../tests/_ci/phalcon.ini &> /dev/null && cd ../..;)'
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || git clone -q --depth=1 https://github.com/Codeception/phalcon-demo.git frameworks-phalcon'
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || composer update -d frameworks-phalcon $composer_parameters'
- # Laravel 5
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || git clone -q -b codeception-2.2 https://github.com/janhenkgerritsen/codeception-laravel5-sample.git frameworks-l5'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || composer update -d frameworks-l5 $composer_parameters'
- # Lumen
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || git clone -q -b codeception-2.2 https://github.com/janhenkgerritsen/codeception-lumen-sample.git frameworks-lumen'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || composer update -d frameworks-lumen $composer_parameters'
- # Symfony
- - git clone -q -b 2.1 https://github.com/Codeception/symfony-demo.git frameworks-symfony
- - '[[ -z "$SYMFONY" ]] || composer require -d frameworks-symfony symfony/symfony=~$SYMFONY --no-update'
- - '[[ -z "$SYMFONY" ]] || composer update -d frameworks-symfony $composer_parameters'
- # ZF1
- - git clone -q -b 2.2-simple-file-upload --recursive https://github.com/Naktibalda/codeception-zf1-tests frameworks-zf1
- - composer update -d frameworks-zf1 $composer_parameters
- # ZF2
- - git clone -q -b 2.2 --recursive https://github.com/Naktibalda/codeception-zf2-tests frameworks-zf2
- - composer update -d frameworks-zf2 $composer_parameters
- # Zend Expressive
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || git clone -q -b 2.2 --recursive https://github.com/Naktibalda/codeception-zend-expressive-tests frameworks-zend-expressive'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || composer update -d frameworks-zend-expressive $composer_parameters'
- before_script:
- - '[[ "$TRAVIS_PHP_VERSION" == 7.* ]] || echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini'
- # preparing databases
- - "mysql -e 'create database codeception_test;'"
- - psql -c 'create database codeception_test;' -U postgres
- # starting demo servers
- - 'php -S 127.0.0.1:8000 -t tests/data/app >/dev/null 2>&1 &'
- - 'php -S 127.0.0.1:8010 -t tests/data >/dev/null 2>&1 &'
- # Phalcon
- - mysql -e 'CREATE DATABASE phalcon_demo CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || cat frameworks-phalcon/schemas/phalcon_demo.sql | mysql phalcon_demo'
- # Laravel 5
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || touch frameworks-l5/storage/testing.sqlite'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php frameworks-l5/artisan migrate --database=sqlite_testing --force'
- # Lumen
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || cp frameworks-lumen/.env.testing frameworks-lumen/.env'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || touch frameworks-lumen/storage/testing.sqlite'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php frameworks-lumen/artisan migrate --database=testing --force'
- # Symfony
- - '[[ -z "$SYMFONY" ]] || php frameworks-symfony/app/console doctrine:schema:create -n --env test'
- - '[[ -z "$SYMFONY" ]] || php frameworks-symfony/app/console doctrine:fixtures:load -n --env test'
- # ZF2
- - "mysql -e 'create database zf2_test;'"
- - php frameworks-zf2/vendor/bin/doctrine-module orm:schema-tool:create
- # Build
- - php codecept build -c frameworks-yii-basic
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || php codecept build -c frameworks-phalcon'
- - '[[ -z "$SYMFONY" ]] || php codecept build -c frameworks-symfony/src/AppBundle'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept build -c frameworks-l5'
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept build -c frameworks-lumen'
- - php codecept build -c frameworks-zf1
- - php codecept build -c frameworks-zf2
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || php codecept build -c frameworks-zend-expressive'
- script:
- - php codecept run cli,unit # self tests
- - 'php codecept run coverage' # run coverage tests on php only
- - php codecept run functional -c frameworks-yii-basic # Yii2 tests
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept run -c frameworks-l5' # Laravel5 Tests
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept run -c frameworks-lumen' # Lumen Tests
- - '[[ "$TRAVIS_PHP_VERSION" == "7.1" ]] || php codecept run functional -c frameworks-phalcon' # Phalcon Tests
- - '[[ -z "$SYMFONY" ]] || php codecept run functional -c frameworks-symfony/src/AppBundle '# Symfony Tests
- - php codecept run functional -c frameworks-zf1 # ZF1 Tests
- - php codecept run -c frameworks-zf2 functional,doctrine # ZF2 Tests
- - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || php codecept run functional -c frameworks-zend-expressive' # Zend Expressive Tests
|