before_install.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env bash
  2. # Copyright © Magento, Inc. All rights reserved.
  3. # See COPYING.txt for license details.
  4. set -e
  5. trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit code $?' ERR
  6. # mock mail
  7. sudo service postfix stop
  8. echo # print a newline
  9. smtp-sink -d "%d.%H.%M.%S" localhost:2500 1000 &
  10. echo 'sendmail_path = "/usr/sbin/sendmail -t -i "' > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/sendmail.ini
  11. # disable xdebug and adjust memory limit
  12. echo > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini
  13. echo 'memory_limit = -1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
  14. phpenv rehash;
  15. # If env var is present, configure support for 3rd party builds which include private dependencies
  16. test -n "$GITHUB_TOKEN" && composer config github-oauth.github.com "$GITHUB_TOKEN" || true
  17. # Node.js setup via NVM
  18. if [ $TEST_SUITE == "js" ]; then
  19. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
  20. export NVM_DIR="$HOME/.nvm"
  21. [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
  22. nvm install $NODE_JS_VERSION
  23. nvm use $NODE_JS_VERSION
  24. node --version
  25. npm install -g yarn
  26. yarn global add grunt-cli
  27. fi
  28. if [ $TEST_SUITE = "functional" ] || [ $TEST_SUITE = "graphql-api-functional" ]; then
  29. # Install apache
  30. sudo apt-get update
  31. sudo apt-get install apache2 libapache2-mod-fastcgi
  32. if [ ${TRAVIS_PHP_VERSION:0:1} == "7" ]; then
  33. sudo cp ${TRAVIS_BUILD_DIR}/dev/travis/config/www.conf ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/
  34. fi
  35. # Enable php-fpm
  36. sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
  37. sudo a2enmod rewrite actions fastcgi alias
  38. echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  39. ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
  40. # Configure apache virtual hosts
  41. sudo cp -f ${TRAVIS_BUILD_DIR}/dev/travis/config/apache_virtual_host /etc/apache2/sites-available/000-default.conf
  42. sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
  43. sudo sed -e "s?%MAGENTO_HOST_NAME%?${MAGENTO_HOST_NAME}?g" --in-place /etc/apache2/sites-available/000-default.conf
  44. sudo usermod -a -G www-data travis
  45. sudo usermod -a -G travis www-data
  46. phpenv config-rm xdebug.ini
  47. sudo service apache2 restart
  48. /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -screen 0 1280x1024x24
  49. fi