Skip to content
Extraits de code Groupes Projets
.travis.yml 7,05 ko
Newer Older
  • Learn to ignore specific revisions
  • # do not edit this file manually, instead run the generate:travis-yml console command
    
    # if you are a Piwik core developer, edit this template file to auto generate the .travis.yml: https://github.com/piwik/piwik/blob/master/plugins/CoreConsole/templates/travis.yml.twig
    
    # when modifying this file, please consider whether your changes should apply to plugin .travis.yml files. if not, check whether the pluginName twig var is empty,
    # otherwise your changes will be synced with every plugin that uses an auto generated .travis.yml
    
    # also please test generation before committing by running ./console generate:travis-yml --core and ./console generate:travis-yml --plugin=CustomAlerts
    # and making sure the .travis.yml files are changed correctly
    
    # We want to test against PHP 5.3.3/5.4/5.5
    
    Fabian Becker's avatar
    Fabian Becker a validé
    # Separate different test suites
    
        - TEST_SUITE=IntegrationTests MYSQL_ADAPTER=PDO_MYSQL
        - TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL
        - TEST_SUITE=CoreTests MYSQL_ADAPTER=PDO_MYSQL
    
        - TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI
    
        - TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI
        - TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI
        # Javascript tests
    
        - TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL
    
        - TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
    
        - PIWIK_ROOT_DIR=$TRAVIS_BUILD_DIR
    
        - secure: "AMhZmPZx4SUcuZRBzGHlQPxzM4D8FvFB3UThDa52gbi9KIBrwcumzV2VGi6B\n5fgjwtB4XTE1In7qhY2HMikPWBmWYYOQ5QcMPJsqqHt4iMmahx8WKzne6NOk\nNpqAuje/fulNGeP2LJZi0nrub3Fh4VwXaOvpNloKNQN/2JuqPtM="
        - secure: "DySde80fX3dw0osGY5s5lGiGLjMleUkkONsuRDC4xjT1hAQP94FGHpPXVZV8\nAQY0s8MQmcK2eRLOQrmE9Bh1XXbGqh40s66XhSWq0hulFHxQH5OLaZXccFeu\n5WxGkHXnNDIc+CVhXW/IIbHZPO1K6hffS8fuvP1o6mYgxwFL6Xw="
    
        - secure: "CW73pDjcaabpSL7bWiWIQLydKmvLzA1gWNv/zK0VcAKezQtCAQbqpIY1+B56wOhkaCWa7P+xdd2gUWEtvvdRKEC0sZcgCdHD5pQx390e5PWCMQTFO+doAElI4w4DMATCbH890Wcw2rotiZcjlkPYY+urIpUlcRsl6mMtBVQuQ9c="
    
    matrix:
    
      fast_finish: true
    
      allow_failures:
        - php: hhvm
    
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Core
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Plugins
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Integration
      include:
        # Code Coverage
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Core
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Plugins
        - php: 5.4
          env: MYSQL_ADAPTER=PDO_MYSQL COVERAGE=Integration
    
      exclude:
    
        # Javascript tests need to run only on one PHP version
        - php: 5.4
          env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL
        - php: 5.5
          env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL
    
        - php: 5.6
          env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL
    
        - php: hhvm
          env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL
    
        # AngularJS tests need to run only on one PHP version
        - php: 5.4
          env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
        - php: 5.5
          env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
    
        - php: 5.6
          env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
    
        - php: hhvm
          env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL
    
        # Only run Mysqli tests on PHP 5.3
    
        - php: 5.4
          env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI
        - php: 5.4
          env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI
        - php: 5.4
          env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI
        - php: 5.5
          env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI
        - php: 5.5
          env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI
        - php: 5.5
          env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI
    
        - php: 5.6
          env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI
        - php: 5.6
          env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI
        - php: 5.6
          env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI
    
        - php: hhvm
          env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI
        - php: hhvm
          env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI
        - php: hhvm
          env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI
    
    script: $PIWIK_ROOT_DIR/tests/travis/travis.sh
    
      # do not use the Zend allocator on PHP 5.3 since it will randomly segfault after program execution
      - '[[ "$TRAVIS_PHP_VERSION" == 5.3* ]] && export USE_ZEND_ALLOC=0 || true'
    
      # make sure travis test scripts are always latest (so in older releases/branches, the latest scripts will still be used)
    
    diosmosis's avatar
    diosmosis a validé
      - git checkout master -- ./tests/travis ./plugins/CoreConsole || true
    
      - if [ -z "$TEST_SUITE" ];
        then composer require satooshi/php-coveralls dev-master;
        fi
    
    
      - ./tests/travis/configure_git.sh
    
      # print out mysql information
    
      - mysql --version
      - mysql -e "SELECT VERSION();"
    
      - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'" # Travis default
    
      # Uncomment to enable sql_mode STRICT_TRANS_TABLES (new default in Mysql 5.6)
    
      - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'"
    
    mattab's avatar
    mattab a validé
      - mysql -e "SELECT @@sql_mode;"
    
    Thomas Steur's avatar
    Thomas Steur a validé
      - mysql -e "SHOW GLOBAL VARIABLES;"
    
      - ./tests/travis/initiate_ui_tests.sh
    
      # travis now complains about this failing 9 times out of 10, so removing it. hopefully the random failures it prevented won't come back
    
      # - travis_retry composer self-update
    
      - travis_retry composer install
    
    Fabian Becker's avatar
    Fabian Becker a validé
      - uname -a
      - date
    
    mattab's avatar
    mattab a validé
      - php -r "var_dump(gd_info());"
    
    Benaka Moorthi's avatar
    Benaka Moorthi a validé
      - mysql -e 'create database piwik_tests;'
    
    mattab's avatar
    mattab a validé
      # Make sure we use Python 2.6
    
      - travis_retry sudo add-apt-repository ppa:fkrull/deadsnakes -y
    
      - travis_retry sudo apt-get update
    
      - travis_retry sudo apt-get install python2.6 python2.6-dev -y --force-yes
    
    mattab's avatar
    mattab a validé
      # Log Analytics works with Python 2.6 or 2.7 but we want to test on 2.6
    
    mattab's avatar
    mattab a validé
      - python2.6 --version
    
      - python --version
    
    Fabian Becker's avatar
    Fabian Becker a validé
      - ./tests/travis/prepare.sh
    
      - ./tests/travis/setup_webserver.sh
    
      - export GENERATE_TRAVIS_YML_COMMAND="php ./console generate:travis-yml --core"
    
      - ./tests/travis/autoupdate_travis_yml.sh
    
      - cd tests/PHPUnit
    
      # change directory back to root travis dir
      - cd $PIWIK_ROOT_DIR
    
    
      - if [ -z "$TEST_SUITE" ];
        then php vendor/bin/coveralls -v;
        fi
    
    
      # output contents of files w/ debugging info to screen
    
      - cat /var/log/nginx/error.log
    
      - cat $PIWIK_ROOT_DIR/tmp/php-fpm.log
      - cat $PIWIK_ROOT_DIR/tmp/logs/piwik.log
      - cat $PIWIK_ROOT_DIR/config/config.ini.php
    
      # upload test artifacts (for debugging travis failures)
    
    after_success:
      - cd $PIWIK_ROOT_DIR
      - ./tests/travis/generate_docs.sh
    
    
    mattab's avatar
    mattab a validé
      slack:
        rooms:
          - piwik:3HWhNh21qPfDACQXTrJOb0mW
          - piwikpro:7OABSbDrywSTo2nv9lD2svXG
    
        on_success: change
    
        template:
          - "%{repository} (%{commit}) : %{message} %{foo} "
          - "Build details: %{build_url}"
    
      #email:
      # if we specify piwik-builds@piwik.org then the developer doesn't get notified
      #  - piwik-builds@piwik.org
    
      # this is a missing feature by Travis to notify both list and committer