X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/e027d5fc5ce3dc381673faf17ca827ae11c0a1f7..efef67447ba6c097d12d89987c902526b9ab6df5:/.github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..2eaf153b0 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,69 @@ +name: Tests +on: + - push + - pull_request +jobs: + tests: + name: Ubuntu ${{ matrix.ubuntu }}, Ruby ${{ matrix.ruby }} + strategy: + matrix: + ubuntu: [18.04, 20.04] + ruby: [2.5, 2.7] + runs-on: ubuntu-${{ matrix.ubuntu }} + env: + RAILS_ENV: test + OPENSTREETMAP_MEMCACHE_SERVERS: 127.0.0.1 + steps: + - name: Checkout source + uses: actions/checkout@v1 + - name: Setup ruby + uses: actions/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Cache gems + uses: actions/cache@v1 + with: + path: vendor/bundle + key: bundle-ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}-${{ hashFiles('Gemfile.lock') }} + restore-keys: | + bundle-ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}- + - name: Cache node modules + uses: actions/cache@v1 + with: + path: node_modules + key: yarn-ubuntu-${{ matrix.ubuntu }}-${{ hashFiles('yarn.lock') }} + restore-keys: | + yarn-ubuntu-${{ matrix.ubuntu }}- + - name: Install packages + run: | + sudo apt-get -yqq update + sudo apt-get -yqq install memcached + - name: Install gems + run: | + gem install bundler + bundle config set deployment true + bundle install --jobs 4 --retry 3 + - name: Create database + run: | + sudo systemctl start postgresql + sudo -u postgres createuser -s $(id -un) + createdb openstreetmap + psql -c "CREATE EXTENSION btree_gist" openstreetmap + psql -f db/functions/functions.sql openstreetmap + - name: Configure rails + run: | + cp config/github.database.yml config/database.yml + cp config/example.storage.yml config/storage.yml + touch config/settings.local.yml + - name: Populate database + run: | + sed -f script/normalise-structure db/structure.sql > db/structure.expected + bundle exec rake db:migrate + sed -f script/normalise-structure db/structure.sql > db/structure.actual + diff -uw db/structure.expected db/structure.actual + - name: Export javascript strings + run: bundle exec rake i18n:js:export + - name: Install node modules + run: bundle exec rake yarn:install + - name: Run tests + run: bundle exec rake test:db