From 8e2dc707f431bcb995f5fd9cb01c254287c15b30 Mon Sep 17 00:00:00 2001 From: Helmut Hummel <helmut.hummel@typo3.org> Date: Tue, 11 Feb 2014 10:45:22 +0100 Subject: [PATCH] [TASK] Speedup travis build Different build environments have been set up mainly to be able to execute lint, unit tests and functional tests in parallel. However setting up the build environment on travis also takes quite some time, so that overall build times are quite high. This change cleans up the travis configuration, reduces the number of builds to only the configured PHP versions and executes lint, unit tests and functional test in parallel using the command line tool "parallel" By doing so, the overall build time can be reduced by at least 50% This change also removes the installation of a current git version which has been added to fix temporary Travis service errors. Releases: 6.2 Change-Id: Ic1591ed0b596df22a648a825639c1a2bbc7ffcc2 Reviewed-on: https://review.typo3.org/27540 Reviewed-by: Helmut Hummel Tested-by: Helmut Hummel --- .travis.yml | 48 +++++++++--------------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index a07aa807e303..d119262354a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,7 @@ php: - 5.5 env: - - DB=mysql UNITTESTS=1 - - DB=none FUNCTIONALTESTS=1 - - DB=none PHPLINT=1 + - DB=mysql notifications: irc: @@ -21,34 +19,15 @@ services: before_script: - sudo apt-get install parallel - - sudo apt-get update && sudo apt-get install git - 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 [[ "$UNITTESTS" == "1" ]]; then - if [[ "$TRAVIS_PHP_VERSION" == "5.3" ]]; then - installPhpModule -y apc; - fi - if [[ "$TRAVIS_PHP_VERSION" != "5.5" ]]; then - installPhpModule igbinary - fi - installPhpModule -y memcache - installPhpModule redis - mv build-environment/typo3conf . - git clone --single-branch --branch master --depth 1 git://git.typo3.org/TYPO3CMS/Extensions/phpunit.git typo3conf/ext/phpunit/ - mkdir fileadmin - mkdir uploads - mkdir typo3temp - fi - - - > - if [[ "$FUNCTIONALTESTS" == "1" ]]; then - mv build-environment/typo3conf . - git clone --single-branch --branch master --depth 1 git://git.typo3.org/TYPO3CMS/Extensions/phpunit.git typo3conf/ext/phpunit/ - mkdir typo3temp - fi - + - if [[ "$TRAVIS_PHP_VERSION" == "5.3" ]]; then installPhpModule -y apc; fi + - if [[ "$TRAVIS_PHP_VERSION" != "5.5" ]]; then installPhpModule igbinary; fi + - installPhpModule -y memcache + - installPhpModule redis + - mkdir fileadmin uploads typo3temp + - mv build-environment/typo3conf . + - git clone --single-branch --branch master --depth 1 git://git.typo3.org/TYPO3CMS/Extensions/phpunit.git typo3conf/ext/phpunit/ - > if [[ "$DB" == "mysql" ]]; then mysql -e "DROP DATABASE IF EXISTS typo3_test;" -uroot @@ -58,13 +37,4 @@ before_script: fi script: - - > - if [[ "$PHPLINT" == "1" ]]; then - phpLint all - elif [[ "$UNITTESTS" == "1" ]]; then - ./typo3conf/ext/phpunit/Composer/vendor/bin/phpunit -c typo3/sysext/core/Build/UnitTests.xml - elif [[ "$FUNCTIONALTESTS" == "1" ]]; then - grep directory typo3/sysext/core/Build/FunctionalTests.xml | sed 's#[ ]*<directory>\.\./\.\./\.\./\.\./\(typo3/sysext.*\)</directory>$#\1#g' | parallel --gnu --keep-order 'echo "Running {} tests"; ./typo3conf/ext/phpunit/Composer/vendor/bin/phpunit -c typo3/sysext/core/Build/FunctionalTests.xml {}' - else - exit 1 - fi + - php -r 'echo implode("\n", array("Lint", "UnitTests", "FunctionalTests"));' | parallel --gnu --keep-order 'echo "Running {}"; ./build-environment/execute{}.sh' -- GitLab