.travis.yml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. services:
  2. - mysql
  3. jdk:
  4. - oraclejdk8
  5. language: php
  6. php:
  7. #- 5.4 // Removed because of Chash dependencies on PHP 5.5
  8. - 5.5
  9. - 5.6
  10. - 7.0
  11. env:
  12. global:
  13. - VHOST_URL=my.chamilo.net
  14. - VHOST_CONF=my.chamilo.net.conf
  15. - CHAMILO_VERSION=1.11.x
  16. before_install:
  17. #- sudo apt-get install python-software-properties
  18. #- sudo add-apt-repository ppa:ondrej/php5 -y
  19. - sudo apt-get update -qq
  20. - sudo apt-get install -qq mysql-server
  21. - sudo apt-get install -qq apache2 libapache2-mod-fastcgi
  22. # enable php-fpm
  23. - sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
  24. - if [[ ${TRAVIS_PHP_VERSION:0:3} == "7.0" ]]; then sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf ; fi
  25. - if [[ ${TRAVIS_PHP_VERSION:0:3} == "7.1" ]]; then sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf ; fi
  26. - sudo a2enmod rewrite actions fastcgi alias
  27. - echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  28. - echo "memory_limit = 2G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  29. - echo "phar.readonly = 0" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  30. - echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
  31. - ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
  32. # configure apache virtual hosts
  33. - sudo cp -f tests/travis-apache /etc/apache2/sites-available/$VHOST_CONF
  34. - sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/$VHOST_CONF
  35. - sudo sed -e "s?%VHOST_URL%?$VHOST_URL?g" --in-place /etc/apache2/sites-available/$VHOST_CONF
  36. - echo "127.0.0.1 $VHOST_URL" | sudo tee -a /etc/hosts
  37. - sudo a2enmod rewrite
  38. - sudo a2ensite $VHOST_CONF
  39. - sudo service apache2 restart
  40. - echo mysql --version
  41. # Install additional PHP packages (check http://docs.travis-ci.com/user/ci-environment/#CI-environment-OS
  42. # for pre-installed packages)
  43. #- sudo apt-get install -qq php5-imagick
  44. # Following http://docs.travis-ci.com/user/languages/php/#PHP-installation,
  45. # php is compiled with --enable-fpm, so no install of FPM is needed.
  46. # However, not installing it generates errors with service php5-fpm restart
  47. # further down (need to use php-fpm without 5)
  48. #- sudo apt-get install -qq php5-cli php5-fpm
  49. before_script:
  50. # Get Chrome driver
  51. - wget https://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip && unzip chromedriver_linux64.zip && sudo mv chromedriver /usr/bin
  52. # Setup display for Selenium
  53. - sh -e /etc/init.d/xvfb start
  54. - export DISPLAY=:99.0
  55. # Get Selenium
  56. - wget http://selenium-release.storage.googleapis.com/3.1/selenium-server-standalone-3.1.0.jar
  57. # Check java
  58. - java -version
  59. - sudo apt-get install oracle-java8-installer
  60. - java -version
  61. - java -jar selenium-server-standalone-3.1.0.jar > /dev/null &
  62. - sleep 10
  63. #- which composer
  64. #- php -d memory_limit=2G /usr/bin/composer update
  65. #- php -d memory_limit=2G /home/travis/.phpenv/shims/composer update
  66. # You can either use the composer install method and face the Github limit
  67. #- composer install -n
  68. - composer self-update
  69. - composer update
  70. # ...OR you can try the option --prefer-dist, that will reuse composer packages cache
  71. #- composer update --prefer-dist
  72. # ...OR you can try the --prefer-source option to download from source whenever it's possible (but it's much slower)
  73. #- composer update --prefer-source
  74. # ...OR use the proxy repository to download the necessary dependencies, but this repo is not always updated
  75. #- git clone -b 1.10.x --depth=1 https://github.com/ywarnier/chamilo-vendors.git
  76. #- sudo mv chamilo-vendors/vendor .
  77. #- sudo mv chamilo-vendors/web .
  78. #- sudo mv chamilo-vendors/composer.lock .
  79. #- sudo rm -rf chamilo-vendors
  80. # Continue...
  81. - phpenv config-add tests/travis-php-config.ini
  82. # enable php-fpm
  83. # configure apache virtual hosts
  84. - php -v
  85. # install Chash, a database, and then install Chamilo
  86. - git clone https://github.com/chamilo/chash
  87. - cd chash
  88. #- composer install
  89. - composer update
  90. - php -d phar.readonly=0 createPhar.php
  91. - chmod +x chash.phar
  92. - sudo mv chash.phar /usr/local/bin/chash
  93. #- cd ..
  94. #- git clone -b nophpversioncheck --single-branch https://github.com/ywarnier/chamilo-cli-install.git
  95. #- cp chamilo-cli-install/chamilo-cli-installer.php main/install/
  96. #- mysql -u root -e 'create database chamilo'
  97. #- sudo chmod -R 0777 app/config app main/default_course_document/images main/lang
  98. #- cd main/install/
  99. #- sudo php5 chamilo-cli-installer.php -l admin -p admin -U travis -u 'http://localhost/' -X travis -L english -z 'admin@example.com' -f 'John' -g 'Doe' -b '555-5555' -c 'Test campus' -y 'Chamilo' -x 'https://chamilo.org'
  100. #- cd ../..
  101. # install Chamilo with Chash - see reference https://github.com/sonnym/travis-ci-drupal-module-example/blob/master/.travis.yml
  102. # - cd /home/travis/build/chamilo/chamilo-lms
  103. # There's an issue with Chash, starting in version 1.10, whereby PHP CLI on Travis-ci is PHP5.3, whatever the version you ask for.
  104. # This effectively breaks the installer and renders these tests useless. We are looking for a solution (for example using containers)
  105. - sudo php -d date.timezone="Europe/Paris" chash.php chash:chamilo_install $CHAMILO_VERSION $TRAVIS_BUILD_DIR --download-package --no-interaction --only-download-package
  106. - cd $TRAVIS_BUILD_DIR
  107. - composer update
  108. - sudo php -d date.timezone="Europe/Paris" $TRAVIS_BUILD_DIR/chash/chash.php chash:chamilo_install $CHAMILO_VERSION $TRAVIS_BUILD_DIR --no-interaction --sitename="Chamilo" --site_url="http://$VHOST_URL/" --institution="Chamilo" --institution_url="https://chamilo.org" --encrypt_method="sha1" --firstname="John" --lastname="Doe" --language="english" --driver="pdo_mysql" --host="localhost" --port="3306" --dbname="chamilo" --dbuser="root" --permissions_for_new_directories="0777" --permissions_for_new_files="0666" --linux-user="www-data" --linux-group="www-data" --username="admin" --password="admin" --email="admin@example.com" --phone="555-5555"
  109. - sudo chmod -R 777 app/cache app/logs app/courses app/upload
  110. - sudo php -d date.timezone="Europe/Paris" $TRAVIS_BUILD_DIR/chash/chash.php chash:chamilo_status
  111. script:
  112. # - phpunit -c tests/phpunit
  113. # pwd shows /home/travis/build/chamilo/chamilo-lms
  114. - cd tests/behat && ../../vendor/behat/behat/bin/behat -v
  115. - sudo cat /var/log/apache2/$VHOST_URL-error.log
  116. - sudo cat /var/log/apache2/$VHOST_URL-access.log
  117. # configure notifications (email, IRC, campfire etc)
  118. notifications:
  119. # IRC notifications - disabled for creating a lot of noise on the channel
  120. irc: "irc.freenode.org#chamilodev"