.travis.yml 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. sudo: false
  2. language: php
  3. matrix:
  4. include:
  5. - php: 5.4 # lowest versions of all dependencies
  6. env: SYMFONY=2.7.19 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 2.7.*
  7. - php: 5.5
  8. env: SYMFONY=2.7.5 dependencies=lowest SYMFONY_DEPRECATIONS_HELPER=weak #lowest version of 2.7
  9. - php: 5.6
  10. env: SYMFONY=2.8.12 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 2.8.*
  11. - php: 7.0
  12. env: SYMFONY=3.2.9 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 3.2.*
  13. - php: 7.1
  14. env: SYMFONY=3.3.2 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 3.3.*
  15. - php: 7.2
  16. env: SYMFONY=3.3.2 SYMFONY_DEPRECATIONS_HELPER=weak # latest version of 3.3.*
  17. addons:
  18. postgresql: "9.2"
  19. branches:
  20. except:
  21. - gh-pages
  22. cache:
  23. directories:
  24. - vendor
  25. - $HOME/.composer/cache
  26. services:
  27. - mongodb
  28. - rabbitmq
  29. - postgresql
  30. - redis
  31. install:
  32. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || pecl install mongodb'
  33. - yes '' | pecl install imagick
  34. #- echo "extension = mongodb.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  35. - composer self-update && composer --version
  36. - if [ -n "$CI_USER_TOKEN" ]; then composer config github-oauth.github.com ${CI_USER_TOKEN}; echo "Configured Github token"; fi;
  37. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || composer require mongodb/mongodb --no-update'
  38. - '[[ "$TRAVIS_PHP_VERSION" == "7.2" ]] || composer global require "fxp/composer-asset-plugin:~1.3.1"'
  39. - '[[ -z "$SYMFONY" ]] || composer require symfony/finder=~$SYMFONY --no-update --ignore-platform-reqs'
  40. - '[[ -z "$SYMFONY" ]] || composer require symfony/yaml=~$SYMFONY --no-update --ignore-platform-reqs'
  41. - '[[ -z "$SYMFONY" ]] || composer require symfony/console=~$SYMFONY --no-update --ignore-platform-reqs'
  42. - '[[ -z "$SYMFONY" ]] || composer require symfony/event-dispatcher=~$SYMFONY --no-update --ignore-platform-reqs'
  43. - '[[ -z "$SYMFONY" ]] || composer require symfony/css-selector=~$SYMFONY --no-update --ignore-platform-reqs'
  44. - '[[ -z "$SYMFONY" ]] || composer require symfony/dom-crawler=~$SYMFONY --no-update --ignore-platform-reqs'
  45. - '[[ -z "$SYMFONY" ]] || composer require symfony/browser-kit=~$SYMFONY --no-update --ignore-platform-reqs'
  46. - composer_parameters="-n --prefer-dist" # this variable will be used in all composer install commands
  47. - '[[ "$dependencies" != "lowest" ]] || composer_parameters="$composer_parameters --prefer-lowest"'
  48. - composer update $composer_parameters
  49. - composer_parameters="$composer_parameters --no-dev" # Codeception needs dev dependencies, but frameworks don't
  50. # Yii2
  51. - '[[ "$TRAVIS_PHP_VERSION" == "7.2" ]] || composer create-project "yiisoft/yii2-app-basic" frameworks-yii-basic --no-dev'
  52. # Phalcon
  53. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || git clone -q --depth=1 https://github.com/phalcon/cphalcon.git'
  54. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || (cd cphalcon/build; bash ./install --phpize $(phpenv which phpize) --php-config $(phpenv which php-config) &>/dev/null && phpenv config-add ../tests/_ci/phalcon.ini &> /dev/null)'
  55. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || git clone -q --depth=1 https://github.com/Codeception/phalcon-demo.git frameworks-phalcon'
  56. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || composer update -d frameworks-phalcon $composer_parameters'
  57. # Laravel 5
  58. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || git clone -q -b codeception-2.3 https://github.com/codeception/codeception-laravel5-sample.git frameworks-l5'
  59. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || composer update -d frameworks-l5 $composer_parameters'
  60. # Lumen
  61. - '[[ "$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'
  62. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || composer update -d frameworks-lumen $composer_parameters'
  63. # Symfony
  64. - '[[ "$SYMFONY" > "3.0.0" ]] || (git clone -q -b 2.1 https://github.com/Codeception/symfony-demo.git frameworks-symfony && echo "Cloned Symfony 2 site")'
  65. - '[[ "$SYMFONY" < "3.0.0" ]] || (git clone -q -b master --recursive https://github.com/Naktibalda/codeception-symfony-tests frameworks-symfony && echo "Cloned Symfony 3 site")'
  66. - '[[ -z "$SYMFONY" ]] || composer require -d frameworks-symfony symfony/symfony=~$SYMFONY --no-update'
  67. - "mysql -e 'create database symfony_test;'"
  68. - 'composer update -d frameworks-symfony $composer_parameters'
  69. # ZF1
  70. - git clone -q -b 2.2 --recursive https://github.com/Naktibalda/codeception-zf1-tests frameworks-zf1
  71. - composer update -d frameworks-zf1 $composer_parameters
  72. # ZF2
  73. - git clone -q -b 2.2 --recursive https://github.com/Naktibalda/codeception-zf2-tests frameworks-zf2
  74. - composer update -d frameworks-zf2 $composer_parameters
  75. # Zend Expressive
  76. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || git clone -q -b 2.2 --recursive https://github.com/Naktibalda/codeception-zend-expressive-tests frameworks-zend-expressive'
  77. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || composer update -d frameworks-zend-expressive $composer_parameters'
  78. before_script:
  79. - '[[ "$TRAVIS_PHP_VERSION" == 7.* ]] || echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini'
  80. # preparing databases
  81. - "mysql -e 'create database codeception_test;'"
  82. - psql -c 'create database codeception_test;' -U postgres
  83. # starting demo servers
  84. - 'php -S 127.0.0.1:8000 -t tests/data/app >/dev/null 2>&1 &'
  85. - 'php -S 127.0.0.1:8010 -t tests/data >/dev/null 2>&1 &'
  86. # Phalcon
  87. - mysql -e 'CREATE DATABASE phalcon_demo CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'
  88. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || cat frameworks-phalcon/schemas/phalcon_demo.sql | mysql phalcon_demo'
  89. # Laravel 5
  90. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || touch frameworks-l5/storage/testing.sqlite'
  91. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php frameworks-l5/artisan migrate --env=testing --database=sqlite_testing --force'
  92. # Lumen
  93. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || cp frameworks-lumen/.env.testing frameworks-lumen/.env'
  94. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || touch frameworks-lumen/storage/testing.sqlite'
  95. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php frameworks-lumen/artisan migrate --database=testing --force'
  96. # Symfony
  97. - '[[ "$SYMFONY" > "3.0.0" ]] || php frameworks-symfony/app/console doctrine:schema:create -n --env test'
  98. - '[[ "$SYMFONY" > "3.0.0" ]] || php frameworks-symfony/app/console doctrine:fixtures:load -n --env test'
  99. - '[[ "$SYMFONY" < "3.0.0" ]] || php frameworks-symfony/bin/console doctrine:schema:update --force -n'
  100. # ZF2
  101. - "mysql -e 'create database zf2_test;'"
  102. - php frameworks-zf2/vendor/bin/doctrine-module orm:schema-tool:create
  103. # Build
  104. - '[[ "$TRAVIS_PHP_VERSION" == "7.2" ]] || php codecept build -c frameworks-yii-basic'
  105. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || php codecept build -c frameworks-phalcon'
  106. - '[[ "$SYMFONY" > "3.0.0" ]] || php codecept build -c frameworks-symfony/src/AppBundle'
  107. - '[[ "$SYMFONY" < "3.0.0" ]] || php codecept build -c frameworks-symfony'
  108. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept build -c frameworks-l5'
  109. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept build -c frameworks-lumen'
  110. - php codecept build -c frameworks-zf1
  111. - php codecept build -c frameworks-zf2
  112. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept build -c frameworks-zend-expressive'
  113. script:
  114. - php codecept run cli,unit # self tests
  115. - '[[ "$TRAVIS_PHP_VERSION" == "7.0" ]] || php codecept run coverage' # run coverage tests on php only
  116. - '[[ "$TRAVIS_PHP_VERSION" == "7.2" ]] || php codecept run functional -c frameworks-yii-basic' # Yii2 tests
  117. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept run -c frameworks-l5 --skip=seeder' # Laravel5 Tests
  118. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept run -c frameworks-lumen' # Lumen Tests
  119. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || php codecept run functional -c frameworks-phalcon' # Phalcon Tests
  120. - '[[ "$SYMFONY" > "3.0.0" ]] || php codecept run functional -c frameworks-symfony/src/AppBundle' # Symfony Tests
  121. - '[[ "$SYMFONY" < "3.0.0" ]] || php codecept run -c frameworks-symfony' # Symfony Tests
  122. - php codecept run functional -c frameworks-zf1 # ZF1 Tests
  123. #ZF2 run doctrine tests on PHP 5.4 and 5.5 only
  124. - '[[ "$TRAVIS_PHP_VERSION" > "5.5" ]] || php codecept run -c frameworks-zf2 functional,doctrine'
  125. - '[[ "$TRAVIS_PHP_VERSION" < "5.6" ]] || php codecept run -c frameworks-zf2 functional'
  126. - '[[ "$TRAVIS_PHP_VERSION" == "5.4" ]] || [[ "$TRAVIS_PHP_VERSION" == "5.5" ]] || php codecept run functional -c frameworks-zend-expressive' # Zend Expressive Tests