]> git.openstreetmap.org Git - nominatim.git/commitdiff
get apt-get php-db package running on travis-ci (#973)
authormtmail <mtmail@gmx.net>
Wed, 11 Apr 2018 22:54:59 +0000 (00:54 +0200)
committerGitHub <noreply@github.com>
Wed, 11 Apr 2018 22:54:59 +0000 (00:54 +0200)
travis: /usr/bin/env php whenever calling PHP scripts to deal with phpenv

.travis.yml
test/bdd/environment.py
test/bdd/steps/queries.py
vagrant/install-on-travis-ci.sh

index c67f155e4240a1b5e2a0e0e08d0b1937143f36c7..1184d283ceeb8dd73adadf589a4d650509ec18e7 100644 (file)
@@ -18,8 +18,8 @@ before_script:
 script:
   - cd $TRAVIS_BUILD_DIR/build
   - if [[ $TEST_SUITE == "monaco" ]]; then wget --no-verbose --output-document=../data/monaco.osm.pbf http://download.geofabrik.de/europe/monaco-latest.osm.pbf; fi
-  - if [[ $TEST_SUITE == "monaco" ]]; then ./utils/setup.php --osm-file ../data/monaco.osm.pbf --osm2pgsql-cache 1000 --all 2>&1 | grep -v 'ETA (seconds)'; fi
-  - if [[ $TEST_SUITE == "monaco" ]]; then ./utils/specialphrases.php --wiki-import | psql -d test_api_nominatim >/dev/null; fi
+  - if [[ $TEST_SUITE == "monaco" ]]; then /usr/bin/env php ./utils/setup.php --osm-file ../data/monaco.osm.pbf --osm2pgsql-cache 1000 --all 2>&1 | grep -v 'ETA (seconds)'; fi
+  - if [[ $TEST_SUITE == "monaco" ]]; then /usr/bin/env php ./utils/specialphrases.php --wiki-import | psql -d test_api_nominatim >/dev/null; fi
   - cd $TRAVIS_BUILD_DIR/test/php
   - if [[ $TEST_SUITE == "tests" ]]; then phpunit ./ ; fi
   - if [[ $TEST_SUITE == "tests" ]]; then phpcs --report-width=120 . ; fi
index 90c757244314f085421b399e51d73714b28e508c..2bea318039d14f3de2d01600decabf80bc6bd5b4 100644 (file)
@@ -151,7 +151,8 @@ class NominatimEnvironment(object):
         self.run_nominatim_script('update', *args, **kwargs)
 
     def run_nominatim_script(self, script, *args, **kwargs):
-        cmd = [os.path.join(self.build_dir, 'utils', '%s.php' % script)]
+        cmd = ['/usr/bin/env', 'php', '-Cq']
+        cmd.append(os.path.join(self.build_dir, 'utils', '%s.php' % script))
         cmd.extend(['--%s' % x for x in args])
         for k, v in kwargs.items():
             cmd.extend(('--' + k.replace('_', '-'), str(v)))
index 963aad4dffcdca526cef9bc7e1ed1a5496ef5d00..731dc1b512126a854d9ed97185c19774c22eb81c 100644 (file)
@@ -236,8 +236,9 @@ class DetailsResponse(GenericResponse):
 def query_cmd(context, query, dups):
     """ Query directly via PHP script.
     """
-    cmd = [os.path.join(context.nominatim.build_dir, 'utils', 'query.php'),
-           '--search', query]
+    cmd = ['/usr/bin/env', 'php']
+    cmd.append(os.path.join(context.nominatim.build_dir, 'utils', 'query.php'))
+    cmd.extend(['--search', query])
     # add more parameters in table form
     if context.table:
         for h in context.table.headings:
@@ -282,7 +283,7 @@ def send_api_query(endpoint, params, fmt, context):
     if hasattr(context, 'http_headers'):
         env.update(context.http_headers)
 
-    cmd = ['/usr/bin/php-cgi', '-f']
+    cmd = ['/usr/bin/env', 'php-cgi', '-f']
     if context.nominatim.code_coverage_path:
         env['COV_SCRIPT_FILENAME'] = env['SCRIPT_FILENAME']
         env['COV_PHP_DIR'] = os.path.join(context.nominatim.src_dir, "lib")
@@ -307,7 +308,7 @@ def send_api_query(endpoint, params, fmt, context):
                  + outp + "\n===============================\n")
 
     assert_equals(0, proc.returncode,
-                  "query.php failed with message: %s\noutput: %s" % (err, outp))
+                  "%s failed with message: %s\noutput: %s" % (env['SCRIPT_FILENAME'], err, outp))
 
     assert_equals(0, len(err), "Unexpected PHP error: %s" % (err))
 
@@ -392,7 +393,6 @@ def website_lookup_request(context, fmt, query):
 
     context.response = SearchResponse(outp, outfmt, status)
 
-
 @step(u'(?P<operator>less than|more than|exactly|at least|at most) (?P<number>\d+) results? (?:is|are) returned')
 def validate_result_number(context, operator, number):
     eq_(context.response.errorcode, 200)
index f156ea45b3877a652156e9861342aa46a6ec34a3..05681ae36539d6bcf47ce6dc3ff987fa3b9683a0 100755 (executable)
@@ -16,12 +16,32 @@ sudo apt-get install -y -qq libboost-dev libboost-system-dev \
                             libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
                             libbz2-dev libpq-dev libgeos-c1 libgeos++-dev libproj-dev \
                             postgresql-server-dev-9.6 postgresql-9.6-postgis-2.3 postgresql-contrib-9.6 \
-                            apache2 php5 php5-pgsql php-pear php-db php5-intl
+                            apache2 php5 php5-pgsql php5-intl php-pear
 
-sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 phpunit php5-cgi
+sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 php5-cgi
 
 pip3 install --quiet behave nose pytidylib psycopg2
-sudo pear -q install PHP_CodeSniffer
+
+# Travis uses phpenv to support multiple PHP versions. We need to make sure
+# these packages get installed to the phpenv-set PHP (below /home/travis/.phpenv/),
+# not the system PHP (/usr/bin/php)
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install pear/PEAR-1.10.0
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install DB
+sudo PHP_PEAR_PHP_BIN=`which php` pear -q install PHP_CodeSniffer
+sudo PHP_PEAR_PHP_BIN=`which php` pear list
+# re-populate the shims/ directory, e.g. adds phpcs
+phpenv rehash
+ls -la /home/travis/.phpenv/shims/
+
+# $PHPENV_VERSION and $TRAVIS_PHP_VERSION are unset.
+export PHPENV_VERSION=$(cat /home/travis/.phpenv/version)
+
+# add lib/php/pear to the PHP include path
+tee /tmp/travis.php.ini << EOF
+include_path = .:/home/travis/.phpenv/versions/$PHPENV_VERSION/share/pear:/home/travis/.phpenv/versions/$PHPENV_VERSION/lib/php/pear
+EOF
+phpenv config-add /tmp/travis.php.ini
+
 
 sudo -u postgres createuser -S www-data