[TASK] Mention StackOverflow in README.md
[Packages/TYPO3.CMS.git] / .travis.yml
index 1e6bb7b..cc1d6db 100644 (file)
 language: php
-php:
-  - 5.3
-  - 5.4
-  - 5.5
 
-env:
-  - DB=mysql PHPUNIT=1
-  - DB=none PHPLINT=1
+node_js:
+    - "0.10"
+
+matrix:
+  fast_finish: true
+
+  include:
+    - php: 7
+      env: UNIT_TESTS=yes FUNCTIONAL_TESTS=yes ACCEPTANCE_TESTS=no JSUNIT_TESTS=yes PHP_LINT=yes XLF_CHECK=yes SUBMODULE_TEST=yes  EXCEPTIONCODE_TEST=yes
+
+sudo: false
+
+addons:
+  apt:
+    packages:
+      - parallel
+      - ack-grep
+      - nginx
+      - realpath
+
+cache:
+  directories:
+    - $HOME/.composer/cache
 
 services:
   - memcached
+  - redis-server
+
+notifications:
+  irc:
+    channels:
+      - "irc.freenode.net#typo3-cms"
+    on_success: change
+    on_failure: always
+    use_notice: true
+  slack:
+    rooms:
+      secure: nHWVTPyG3CQWIcYA1LASS11dD0/NBcmrAyr3xxQW0XYtH47ZUKRlEtxrVLuL7ptciNwMbfZgsiRQ1QGWDerHUlBkg0iwRxpUZgeylzWaiXsHFVAp2IBfEX54KrWeYm9gewIBDDtnp+sLgpXGgmpIs2bAGkZe5129UsUExoWh0+g=
+    on_success: change
+    on_failure: always
+  webhooks:
+    urls:
+      - http://www.t3bot.de/hooks/travis/index.php
+    on_success: always
+    on_failure: always
+    on_start: never
 
 before_script:
-# Install build dependencies
-  - git clone --single-branch --branch master --depth 1 git://github.com/typo3-ci/TYPO3-Travis-Integration.git build-environment
-  - source build-environment/install-helper.sh
-  - if [[ "$TRAVIS_PHP_VERSION" != "5.5" ]]; then installPhpModule igbinary; fi
-  - installPhpModule -y memcache
-  - installPhpModule redis
-  - if [[ "$TRAVIS_PHP_VERSION" == "5.3" ]]; then installPhpModule -y apc; fi
-
-# Install rudimentary TYPO3
-  - if [[ "$PHPUNIT" == "1" ]]; then mv build-environment/typo3conf .; fi
-  - if [[ "$PHPUNIT" == "1" ]]; then git clone --single-branch --branch master --depth 1 git://git.typo3.org/TYPO3v4/Extensions/phpunit.git typo3conf/ext/phpunit/; fi
-  - if [[ "$PHPUNIT" == "1" ]]; then mkdir fileadmin; fi
-  - if [[ "$PHPUNIT" == "1" ]]; then mkdir uploads; fi
-  - if [[ "$PHPUNIT" == "1" ]]; then mkdir typo3temp; fi
-  - if [[ "$DB" == "mysql" ]]; then mysql -e "DROP DATABASE IF EXISTS typo3_test;" -uroot; fi
-  - if [[ "$DB" == "mysql" ]]; then mysql -e "CREATE DATABASE IF NOT EXISTS typo3_test;" -uroot; fi
-  - if [[ "$DB" == "mysql" ]]; then php build-environment/dbimport/DatabaseImport.php; fi
-  - if [[ "$DB" == "mysql" ]]; then mysql -uroot typo3_test < build-environment/dbimport/cli_users.sql; fi
+  - phpenv config-rm xdebug.ini
+  - echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
+  - echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
+  - composer install
+  - typo3/sysext/core/Build/Configuration/TravisNginxFpm/ConfigureStartNginxFpm.sh
+  - mkdir -p typo3temp/var/tests
+  - export typo3DatabaseName="typo3"
+  - export typo3DatabaseHost="localhost"
+  - export typo3DatabaseUsername="root"
+  - export typo3DatabasePassword=""
+
+before_install:
+    - export DISPLAY=:99.0
+    - sh -e /etc/init.d/xvfb start
 
 script:
-  - if [[ "$PHPLINT" == "1" ]]; then phpLint all; fi
-  - if [[ "$PHPUNIT" == "1" ]]; then php $PWD/typo3/cli_dispatch.phpsh phpunit -c typo3/sysext/core/Build/UnitTests.xml; fi
+  - >
+    if [[ "$UNIT_TESTS" == "yes" ]]; then
+      ./bin/phpunit -c typo3/sysext/core/Build/UnitTests.xml
+    fi
+
+  - >
+    if [[ "$FUNCTIONAL_TESTS" == "yes" ]]; then
+      ./typo3/sysext/core/Build/Scripts/splitFunctionalTests.sh 10
+      parallel --jobs 4 -a <(seq 0 9) --gnu './bin/phpunit -c typo3/sysext/core/Build/FunctionalTests-Job-{}.xml'
+    fi
+
+  - >
+    if [[ "$ACCEPTANCE_TESTS" == "yes" ]]; then
+      ./bin/codecept run Acceptance -c typo3/sysext/core/Build/AcceptanceTests.yml --debug
+    fi
+
+  - >
+    if [[ "$JSUNIT_TESTS" == "yes" ]]; then
+      cd Build && npm install && cd ..
+      ./Build/node_modules/karma/bin/karma start typo3/sysext/core/Build/Configuration/JSUnit/karma.conf.js --single-run
+    fi
+
+  - >
+    if [[ "$PHP_LINT" == "yes" ]]; then
+      find typo3/ -name \*.php -not -path "vendor/*" | parallel --jobs 6 --gnu php -d display_errors=stderr -l {} > /dev/null \;
+    fi
+
+  - >
+    if [[ "$XLF_CHECK" == "yes" ]]; then
+      ./typo3/sysext/core/Build/Scripts/xlfcheck.sh
+    fi
+
+  - >
+    if [[ "$SUBMODULE_TEST" == "yes" ]]; then
+      /bin/bash -c "
+        if [[ `git submodule status 2>&1 | wc -l` -ne 0 ]]; then
+          echo \"Found a submodule definition in repository\";
+          exit 99;
+        fi
+      "
+    fi
+
+  - >
+    if [[ "$EXCEPTIONCODE_TEST" == "yes" ]]; then
+      ./typo3/sysext/core/Build/Scripts/duplicateExceptionCodeCheck.sh
+    fi