]> git.openstreetmap.org Git - rails.git/blobdiff - .travis.yml
Teach travis to validate the database schema
[rails.git] / .travis.yml
index 6c41bc8b82521802dc6ec577ea93e38b2ceff9f0..459c36f4fa2362245eb84734c97559ff6f4af8cf 100644 (file)
@@ -1,29 +1,37 @@
-sudo: false
+dist: xenial
 language: ruby
 rvm:
-  - 2.1.8
-cache: bundler
+  - 2.5.3
+cache:
+  - bundler
 addons:
-  postgresql: 9.1
+  postgresql: 9.5
   apt:
     packages:
-      - postgresql-server-dev-9.1
+      - postgresql-server-dev-9.5
 services:
   - memcached
 env:
   global:
     - OSM_MEMCACHE_SERVERS="127.0.0.1"
 before_script:
-  - cp config/example.application.yml config/application.yml
+  - sed -e "/idle_in_transaction_session_timeout/d" -e 's/ IMMUTABLE / /' -e "s/AS '.*libpgosm.*',/AS 'libpgosm',/" -e "/^--/d" db/structure.sql > db/structure.expected
   - psql -U postgres -c "CREATE DATABASE openstreetmap"
   - psql -U postgres -c "CREATE EXTENSION btree_gist" openstreetmap
   - make -C db/functions libpgosm.so
-  - psql -U postgres -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '${PWD}/db/functions/libpgosm', 'maptile_for_point' LANGUAGE C STRICT" openstreetmap
-  - psql -U postgres -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '${PWD}/db/functions/libpgosm', 'tile_for_point' LANGUAGE C STRICT" openstreetmap
-  - psql -U postgres -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '${PWD}/db/functions/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap
+  - ln db/functions/libpgosm.so /tmp
+  - psql -U postgres -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '/tmp/libpgosm', 'maptile_for_point' LANGUAGE C STRICT" openstreetmap
+  - psql -U postgres -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '/tmp/libpgosm', 'tile_for_point' LANGUAGE C STRICT" openstreetmap
+  - psql -U postgres -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '/tmp/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap
   - cp config/travis.database.yml config/database.yml
+  - touch config/settings.local.yml
   - bundle exec rake db:migrate
+  - bundle exec rake i18n:js:export
 script:
   - bundle exec rubocop -f fuubar
-  - bundle exec rake jshint
-  - bundle exec rake test
+  - bundle exec rake eslint:run_all
+  - bundle exec erblint .
+  - bundle exec rake db:structure:dump
+  - sed -e "/idle_in_transaction_session_timeout/d" -e 's/ IMMUTABLE / /' -e "s/AS '.*libpgosm.*',/AS 'libpgosm',/" -e "/^--/d" db/structure.sql > db/structure.actual
+  - diff -uw db/structure.expected db/structure.actual
+  - bundle exec rake test:db