3 # This script runs in a travis-ci.org virtual machine
 
   4 # https://docs.travis-ci.com/user/reference/xenial/
 
   7 # $TRAVIS_BUILD_DIR is /home/travis/build/openstreetmap/Nominatim/, for others see
 
   8 #   https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
 
   9 # Postgres 9.6 installed and started. role 'travis' already superuser
 
  11 # Travis has a 4 MB, 10000 line output limit, so where possible we run script --quiet
 
  14 sudo apt-get update -qq
 
  15 sudo apt-get install -y -qq libboost-dev libboost-system-dev \
 
  16                             libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
 
  17                             libbz2-dev libpq-dev libproj-dev \
 
  18                             postgresql-server-dev-9.6 postgresql-9.6-postgis-2.4 postgresql-contrib-9.6 \
 
  19                             apache2 php php-pgsql php-intl php-pear
 
  21 sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 php-cgi
 
  23 pip3 install --quiet behave nose pytidylib psycopg2-binary
 
  25 # Travis uses phpenv to support multiple PHP versions. We need to make sure
 
  26 # these packages get installed to the phpenv-set PHP (inside /home/travis/.phpenv/),
 
  27 # not the system PHP (/usr/bin/php, /usr/share/php/ etc)
 
  29 # $PHPENV_VERSION and $TRAVIS_PHP_VERSION are unset.
 
  30 export PHPENV_VERSION=$(cat /home/travis/.phpenv/version)
 
  33 # https://github.com/pear/DB
 
  34 composer global require "pear/db=1.9.3"
 
  35 # https://github.com/squizlabs/PHP_CodeSniffer
 
  36 composer global require "squizlabs/php_codesniffer=*"
 
  37 sudo ln -s /home/travis/.config/composer/vendor/bin/phpcs /usr/bin/
 
  40 # make sure PEAR.php and DB.php are in the include path
 
  41 tee /tmp/travis.php.ini << EOF
 
  42 include_path = .:/home/travis/.phpenv/versions/$PHPENV_VERSION/share/pear:/home/travis/.config/composer/vendor/pear/db
 
  44 phpenv config-add /tmp/travis.php.ini
 
  47 sudo -u postgres createuser -S www-data
 
  49 # Make sure that system servers can read from the home directory:
 
  51 chmod a+x $TRAVIS_BUILD_DIR
 
  54 sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF > /dev/null
 
  55     <Directory "$TRAVIS_BUILD_DIR/build/website">
 
  56       Options FollowSymLinks MultiViews
 
  57       AddType text/html   .php
 
  58       DirectoryIndex search.php
 
  62     Alias /nominatim $TRAVIS_BUILD_DIR/build/website
 
  66 sudo a2enconf nominatim
 
  67 sudo service apache2 restart
 
  69 wget -O $TRAVIS_BUILD_DIR/data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
 
  73 cmake $TRAVIS_BUILD_DIR
 
  77 tee settings/local.php << EOF
 
  79  @define('CONST_Website_BaseURL', '/nominatim/');
 
  80  @define('CONST_Database_DSN', 'pgsql://@/test_api_nominatim');
 
  81  @define('CONST_Wikipedia_Data_Path', CONST_BasePath.'/test/testdb');