Merge remote-tracking branch 'upstream/pull/3002'
This commit is contained in:
commit
aeb9c4df97
11 changed files with 245 additions and 64 deletions
|
@ -1 +0,0 @@
|
|||
service_name: travis-ci
|
4
.github/dependabot.yml
vendored
4
.github/dependabot.yml
vendored
|
@ -5,3 +5,7 @@ updates:
|
|||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
|
|
115
.github/workflows/lint.yml
vendored
Normal file
115
.github/workflows/lint.yml
vendored
Normal file
|
@ -0,0 +1,115 @@
|
|||
name: Lint
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
env:
|
||||
os: ubuntu-20.04
|
||||
ruby: 2.7
|
||||
jobs:
|
||||
rubocop:
|
||||
name: RuboCop
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup ruby
|
||||
uses: actions/setup-ruby@v1.1.2
|
||||
with:
|
||||
ruby-version: ${{ env.ruby }}
|
||||
- name: Cache gems
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-${{ env.os }}-${{ env.ruby }}-
|
||||
- name: Install gems
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config set deployment true
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: Run rubocop
|
||||
run: bundle exec rubocop --format fuubar
|
||||
erblint:
|
||||
name: ERB Lint
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup ruby
|
||||
uses: actions/setup-ruby@v1.1.2
|
||||
with:
|
||||
ruby-version: ${{ env.ruby }}
|
||||
- name: Cache gems
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-${{ env.os }}-${{ env.ruby }}-
|
||||
- name: Install gems
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config set deployment true
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: Run erblint
|
||||
run: bundle exec erblint .
|
||||
eslint:
|
||||
name: ESLint
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup ruby
|
||||
uses: actions/setup-ruby@v1.1.2
|
||||
with:
|
||||
ruby-version: ${{ env.ruby }}
|
||||
- name: Cache gems
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-${{ env.os }}-${{ env.ruby }}-
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: node_modules
|
||||
key: yarn-${{ env.os }}-${{ hashFiles('yarn.lock') }}
|
||||
restore-keys: |
|
||||
yarn-${{ env.os }}-
|
||||
- name: Install gems
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config set deployment true
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: Install node modules
|
||||
run: bundle exec rake yarn:install
|
||||
- name: Create dummy database configuration
|
||||
run: cp config/example.database.yml config/database.yml
|
||||
- name: Run eslint
|
||||
run: bundle exec rake eslint
|
||||
brakeman:
|
||||
name: Brakeman
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup ruby
|
||||
uses: actions/setup-ruby@v1.1.2
|
||||
with:
|
||||
ruby-version: ${{ env.ruby }}
|
||||
- name: Cache gems
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
bundle-${{ env.os }}-${{ env.ruby }}-
|
||||
- name: Install gems
|
||||
run: |
|
||||
gem install bundler
|
||||
bundle config set deployment true
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: Run brakeman
|
||||
run: bundle exec brakeman -q
|
85
.github/workflows/tests.yml
vendored
Normal file
85
.github/workflows/tests.yml
vendored
Normal file
|
@ -0,0 +1,85 @@
|
|||
name: Tests
|
||||
on:
|
||||
- push
|
||||
- pull_request
|
||||
jobs:
|
||||
test:
|
||||
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
|
||||
- name: Report completion to Coveralls
|
||||
uses: coverallsapp/github-action@v1.1.2
|
||||
with:
|
||||
github-token: ${{ secrets.github_token }}
|
||||
flag-name: ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}
|
||||
parallel: true
|
||||
finish:
|
||||
name: Finalise
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Report completion to Coveralls
|
||||
uses: coverallsapp/github-action@v1.1.2
|
||||
with:
|
||||
github-token: ${{ secrets.github_token }}
|
||||
parallel-finished: true
|
38
.travis.yml
38
.travis.yml
|
@ -1,38 +0,0 @@
|
|||
dist: bionic
|
||||
language: ruby
|
||||
rvm:
|
||||
- 2.7.0
|
||||
cache:
|
||||
- bundler
|
||||
addons:
|
||||
postgresql: 9.5
|
||||
apt:
|
||||
packages:
|
||||
- firefox-geckodriver
|
||||
- libarchive-dev
|
||||
- libgd-dev
|
||||
- libffi-dev
|
||||
- libbz2-dev
|
||||
services:
|
||||
- memcached
|
||||
before_script:
|
||||
- sed -e 's/ IMMUTABLE / /' -e "/^--/d" db/structure.sql > db/structure.expected
|
||||
- psql -U postgres -c "CREATE DATABASE openstreetmap"
|
||||
- psql -U postgres -c "CREATE EXTENSION btree_gist" openstreetmap
|
||||
- psql -U postgres -f db/functions/functions.sql openstreetmap
|
||||
- cp config/travis.database.yml config/database.yml
|
||||
- cp config/example.storage.yml config/storage.yml
|
||||
- touch config/settings.local.yml
|
||||
- echo -e "---\nmemcache_servers:\n - 127.0.0.1" > config/settings/test.local.yml
|
||||
- bundle exec rake db:migrate
|
||||
- bundle exec rake i18n:js:export
|
||||
- bundle exec rake yarn:install
|
||||
script:
|
||||
- bundle exec rubocop -f fuubar
|
||||
- bundle exec rake eslint
|
||||
- bundle exec erblint .
|
||||
- bundle exec brakeman -q
|
||||
- bundle exec rake db:structure:dump
|
||||
- sed -e "/idle_in_transaction_session_timeout/d" -e 's/ IMMUTABLE / /' -e "/^--/d" db/structure.sql > db/structure.actual
|
||||
- diff -uw db/structure.expected db/structure.actual
|
||||
- bundle exec rake test:db
|
3
Gemfile
3
Gemfile
|
@ -141,7 +141,6 @@ end
|
|||
group :test do
|
||||
gem "brakeman"
|
||||
gem "capybara", ">= 2.15"
|
||||
gem "coveralls", :require => false
|
||||
gem "erb_lint", :require => false
|
||||
gem "factory_bot_rails"
|
||||
gem "minitest", "~> 5.1"
|
||||
|
@ -152,5 +151,7 @@ group :test do
|
|||
gem "rubocop-performance"
|
||||
gem "rubocop-rails"
|
||||
gem "selenium-webdriver"
|
||||
gem "simplecov", :require => false
|
||||
gem "simplecov-lcov", :require => false
|
||||
gem "webmock"
|
||||
end
|
||||
|
|
15
Gemfile.lock
15
Gemfile.lock
|
@ -137,12 +137,6 @@ GEM
|
|||
config (2.2.3)
|
||||
deep_merge (~> 1.2, >= 1.2.1)
|
||||
dry-validation (~> 1.0, >= 1.0.0)
|
||||
coveralls (0.8.23)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov (~> 0.16.1)
|
||||
term-ansicolor (~> 1.3)
|
||||
thor (>= 0.19.4, < 2.0)
|
||||
tins (~> 1.6)
|
||||
crack (0.4.4)
|
||||
crass (1.0.6)
|
||||
dalli (2.7.11)
|
||||
|
@ -435,6 +429,7 @@ GEM
|
|||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
simplecov-lcov (0.8.0)
|
||||
smart_properties (1.15.0)
|
||||
sprockets (4.0.2)
|
||||
concurrent-ruby (~> 1.0)
|
||||
|
@ -445,14 +440,9 @@ GEM
|
|||
sprockets (>= 3.0.0)
|
||||
strong_migrations (0.7.3)
|
||||
activerecord (>= 5)
|
||||
sync (0.5.0)
|
||||
term-ansicolor (1.7.1)
|
||||
tins (~> 1.0)
|
||||
thor (1.0.1)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.10)
|
||||
tins (1.26.0)
|
||||
sync
|
||||
tzinfo (1.2.8)
|
||||
thread_safe (~> 0.1)
|
||||
uglifier (4.2.0)
|
||||
|
@ -498,7 +488,6 @@ DEPENDENCIES
|
|||
capybara (>= 2.15)
|
||||
composite_primary_keys (~> 12.0.0)
|
||||
config
|
||||
coveralls
|
||||
dalli
|
||||
delayed_job_active_record
|
||||
dynamic_form
|
||||
|
@ -552,6 +541,8 @@ DEPENDENCIES
|
|||
sassc-rails
|
||||
secure_headers
|
||||
selenium-webdriver
|
||||
simplecov
|
||||
simplecov-lcov
|
||||
strong_migrations
|
||||
uglifier (>= 1.3.0)
|
||||
validates_email_format_of (>= 1.5.1)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# "The Rails Port"
|
||||
|
||||
[](https://travis-ci.org/openstreetmap/openstreetmap-website)
|
||||
[](https://github.com/openstreetmap/openstreetmap-website/actions?query=workflow%3ALint%20branch%3Amaster%20event%3Apush)
|
||||
[](https://github.com/openstreetmap/openstreetmap-website/actions?query=workflow%3ATests%20branch%3Amaster%20event%3Apush)
|
||||
[](https://coveralls.io/r/openstreetmap/openstreetmap-website?branch=master)
|
||||
|
||||
This is The Rails Port, the [Ruby on Rails](http://rubyonrails.org/)
|
||||
|
|
4
config/github.database.yml
Normal file
4
config/github.database.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
test:
|
||||
adapter: postgresql
|
||||
database: openstreetmap
|
||||
encoding: utf8
|
10
script/normalise-structure
Normal file
10
script/normalise-structure
Normal file
|
@ -0,0 +1,10 @@
|
|||
/^$/d
|
||||
/^--/d
|
||||
/^CREATE EXTENSION IF NOT EXISTS plpgsql /d
|
||||
/^COMMENT ON EXTENSION plpgsql /d
|
||||
/^SET default_with_oids /d
|
||||
/^SET default_table_access_method /d
|
||||
/^SET idle_in_transaction_session_timeout /d
|
||||
/^ AS integer$/d
|
||||
|
||||
s/ IMMUTABLE / /
|
|
@ -1,21 +1,30 @@
|
|||
require "coveralls"
|
||||
Coveralls.wear!("rails")
|
||||
require "simplecov"
|
||||
require "simplecov-lcov"
|
||||
|
||||
# Override the simplecov output message, since it is mostly unwanted noise
|
||||
module SimpleCov
|
||||
module Formatter
|
||||
class HTMLFormatter
|
||||
def output_message(_result); end
|
||||
# Fix incompatibility of simplecov-lcov with older versions of simplecov that are not expresses in its gemspec.
|
||||
# https://github.com/fortissimo1997/simplecov-lcov/pull/25
|
||||
unless SimpleCov.respond_to?(:branch_coverage)
|
||||
module SimpleCov
|
||||
def self.branch_coverage?
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Output both the local simplecov html and the coveralls report
|
||||
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new(
|
||||
[SimpleCov::Formatter::HTMLFormatter,
|
||||
Coveralls::SimpleCov::Formatter]
|
||||
SimpleCov::Formatter::LcovFormatter.config do |config|
|
||||
config.report_with_single_file = true
|
||||
config.single_report_path = "coverage/lcov.info"
|
||||
end
|
||||
|
||||
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new(
|
||||
[
|
||||
SimpleCov::Formatter::HTMLFormatter,
|
||||
SimpleCov::Formatter::LcovFormatter
|
||||
]
|
||||
)
|
||||
|
||||
SimpleCov.start("rails")
|
||||
|
||||
require "securerandom"
|
||||
require "digest/sha1"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue