]> git.openstreetmap.org Git - nominatim.git/blob - vagrant/install-on-travis-ci.sh
Upgrade Travis-CI from Ubuntu 18 to 20
[nominatim.git] / vagrant / install-on-travis-ci.sh
1 #!/bin/bash
2
3 # This script runs in a travis-ci.org virtual machine
4 # https://docs.travis-ci.com/user/reference/focal/
5 # Ubuntu 20 (focal)
6 # user 'travis'
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 12 installed and started. role 'travis' already superuser
10 # Python 3.8
11 # Travis has a 4 MB, 10000 line output limit, so where possible we run script --quiet
12
13
14 sudo apt-get update -qq
15
16 sudo apt-get install -y -qq build-essential cmake g++ libboost-dev libboost-system-dev \
17                             libboost-filesystem-dev libexpat1-dev zlib1g-dev \
18                             libbz2-dev libpq-dev libproj-dev \
19                             postgresql-server-dev-12 postgresql-12-postgis-3 \
20                             postgresql-contrib postgresql-12-postgis-3-scripts \
21                             apache2 php php-pgsql libapache2-mod-php \
22                             php-intl python3-setuptools python3-dev python3-pip \
23                             python3-psycopg2 python3-tidylib git
24
25 sudo apt-get install -y -qq php-cgi
26
27 pip3 install --quiet behave nose osmium
28
29 # https://github.com/squizlabs/PHP_CodeSniffer
30 composer global require "squizlabs/php_codesniffer=*"
31 sudo ln -s /home/travis/.config/composer/vendor/bin/phpcs /usr/bin/
32
33 composer global require "phpunit/phpunit=7.*"
34 sudo ln -s /home/travis/.config/composer/vendor/bin/phpunit /usr/bin/
35
36 sudo -u postgres createuser -S www-data
37
38 # Make sure that system servers can read from the home directory:
39 chmod a+x $HOME
40 chmod a+x $TRAVIS_BUILD_DIR
41
42
43 sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF > /dev/null
44     <Directory "$TRAVIS_BUILD_DIR/build/website">
45       Options FollowSymLinks MultiViews
46       AddType text/html   .php
47       DirectoryIndex search.php
48       Require all granted
49     </Directory>
50
51     Alias /nominatim $TRAVIS_BUILD_DIR/build/website
52 EOFAPACHECONF
53
54
55 sudo a2enconf nominatim
56 sudo service apache2 restart
57
58 wget -O $TRAVIS_BUILD_DIR/data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
59
60 mkdir build
61 cd build
62 cmake $TRAVIS_BUILD_DIR
63 make
64
65
66 tee settings/local.php << EOF
67 <?php
68  @define('CONST_Website_BaseURL', '/nominatim/');
69  @define('CONST_Database_DSN', 'pgsql:dbname=test_api_nominatim');
70  @define('CONST_Wikipedia_Data_Path', CONST_BasePath.'/test/testdb');
71  @define('CONST_Replication_Max_Diff_size', '3');
72 EOF
73