Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to Rails 7 and latest JS/CSS Tooling #2290

Merged
merged 17 commits into from
Feb 3, 2022
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = {
version: 'detect',
},
},
ignorePatterns: ['**/*.config.js', '**/config/webpack/*.js', '.eslintrc.js'],
ignorePatterns: ['**/*.config.js', '.eslintrc.js'],
overrides: [
{
files: ['*.ts', '*.tsx'],
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ jobs:
- name: Copy assets from Dockerfile
run: |
container_id=$(docker create website)
docker cp ${container_id}:/opt/exercism/website/current/public/packs packs
docker cp ${container_id}:/opt/exercism/website/.built-assets assets
docker rm ${container_id}

- name: Upload assets to s3
run: |
aws s3 sync packs s3://${{ env.s3_bucket }}/packs/ --acl public-read --no-progress --cache-control max-age=31536000
aws s3 sync assets s3://${{ env.s3_bucket }} --acl public-read --no-progress --cache-control max-age=31536000

#########################
#########################
Expand Down
32 changes: 24 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- uses: actions/checkout@v2

- name: Set up Ruby
uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47
uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50
with:
ruby-version: .ruby-version

Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
###
# Run the tests
- name: Run JS tests
run: yarn test --runInBand
run: yarn test

#####################
##### RUBY TESTS ####
Expand Down Expand Up @@ -154,7 +154,7 @@ jobs:
###
# Setup Ruby
- name: Set up Ruby
uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47
uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50
with:
ruby-version: .ruby-version
bundler-cache: true
Expand Down Expand Up @@ -198,6 +198,19 @@ jobs:
bundle exec setup_exercism_config
bundle exec setup_exercism_local_aws

###
# Precompile JS
- name: Precompile JS
env:
RAILS_ENV: test
NODE_ENV: development
EXERCISM_CI: true
AWS_PORT: ${{ job.services.aws.ports['4566'] }}
MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
run: |
bundle exec rails r bin/monitor-manifest
bundle exec rails test:prepare

###
# Run the tests
- name: Run Ruby tests
Expand All @@ -209,8 +222,9 @@ jobs:
OPENSEARCH_PORT: ${{ job.services.opensearch.ports['9200'] }}
OPENSEARCH_HOST: https://127.0.0.1:${{ job.services.opensearch.ports['9200'] }}
OPENSEARCH_VERIFY_SSL: false

run: |
bundle exec rails test:zeitwerk ${{ matrix.tests }}
bundle exec rails test:zeitwerk
bundle exec rails test ${{ matrix.tests }}

ruby-tests-completed:
Expand Down Expand Up @@ -292,7 +306,7 @@ jobs:
###
# Setup Ruby - this needs to match the version in the Gemfile
- name: Set up Ruby
uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47
uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50
with:
ruby-version: .ruby-version
bundler-cache: true
Expand Down Expand Up @@ -336,7 +350,8 @@ jobs:
AWS_PORT: ${{ job.services.aws.ports['4566'] }}
MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
run: |
bundle exec rails assets:precompile
bundle exec rails r bin/monitor-manifest
bundle exec rails test:prepare

###
# Run the tests
Expand Down Expand Up @@ -373,7 +388,7 @@ jobs:
###
# Setup Ruby - this needs to match the version in the Gemfile
- name: Set up Ruby
uses: ruby/setup-ruby@b161cb92f0e2f28d992f04f38fff204d84132c47
uses: ruby/setup-ruby@fabf2515e6b5531555983e2641f2acdf622b0e50
with:
ruby-version: .ruby-version
bundler-cache: true
Expand Down Expand Up @@ -411,4 +426,5 @@ jobs:
env:
RAILS_ENV: test
EXERCISM_CI: true
run: bundle exec bin/webpack
run: bundle exec rails r bin/monitor-manifest
bundle exec rails test:prepare
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,9 @@ yarn-debug.log*

# Any code coverage that's generated
coverage/

.built-assets/*
!.built-assets/.keep

app/javascript/.config/*
!app/javascript/.config/.keep
14 changes: 13 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ AllCops:
Exclude:
- "app/controllers/tmp/**/*"
- "bin/**/*"
- "bin/{bundle,rails,rake,setup,webpack,webpack-dev-server,yarn}"
- "bin/{bundle,monitor-manifest,rails,rake,setup,yarn}"
- "db/schema.rb"
- "db/migrate/*"
- "db/seeds.rb"
Expand All @@ -21,6 +21,10 @@ Bundler/OrderedGems:

Layout/ArgumentAlignment:
EnforcedStyle: with_fixed_indentation
# TODO: remove once https://github.com/rubocop/rubocop/issues/10364 is fixed
Exclude:
- "app/helpers/view_components/track/solution_activity.rb"
- "test/helpers/view_components/track/solution_activity_test.rb"

Layout/DotPosition:
EnforcedStyle: trailing
Expand Down Expand Up @@ -63,6 +67,10 @@ Metrics/MethodLength:
Metrics/AbcSize:
IgnoredMethods: ["CLI::PrepareUploadedFiles.call"]

Metrics/ClassLength:
Exclude:
- "test/commands/solution/search_user_solutions_test.rb"

Naming/PredicateName:
Enabled: false

Expand Down Expand Up @@ -106,6 +114,10 @@ Naming/VariableNumber:
- "strip_h1"
- "v2"

# TODO: remove once https://github.com/rubocop/rubocop/issues/10383 is fixed
Style/HashSyntax:
Enabled: false

Style/LambdaCall:
EnforcedStyle: braces

Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ruby-2.6.6
ruby-3.1.0
18 changes: 11 additions & 7 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
source 'https://rubygems.org'

ruby '2.6.6'
ruby '3.1.0'

# Service/framework dependencies
gem 'rails', '~> 6.1.3'
gem 'rails', '~> 7.0.1'
gem 'cssbundling-rails'
gem 'jsbundling-rails'
gem 'turbo-rails'
gem 'propshaft'

gem 'mysql2', '>= 0.4.4'
gem 'mysql2', github: 'brianmario/mysql2', ref: '25c42c7'
gem 'redis', '~> 4.0'
gem 'aws-sdk-s3', '~> 1'
gem 'aws-sdk-ecr'
Expand All @@ -29,7 +33,7 @@ gem 'kaminari'
gem 'oj'

# Setup dependencies
gem 'exercism-config', '>= 0.80.0'
gem 'exercism-config', '>= 0.81.0'
# gem 'exercism-config', path: '../exercism_config'

# Model-level dependencies
Expand All @@ -40,8 +44,6 @@ gem 'sidekiq-failures'
gem 'sidekiq-scheduler'

# View-level Dependencies
gem 'webpacker', '~> 5.x'
gem 'turbo-rails'
gem 'hamlit'
gem 'commonmarker'
gem 'ansi-to-html'
Expand All @@ -51,13 +53,16 @@ gem 'devise', '~> 4.7'

# Omniauth
gem 'omniauth-github'
gem "omniauth-rails_csrf_protection"

# Payments
gem 'stripe'

# Reporting
gem 'skylight'

gem 'listen', '>= 3.0.5', '< 3.2'

# Let's be nice to Windows users
platforms :mingw, :mswin, :x64_mingw, :jruby do
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
Expand All @@ -75,7 +80,6 @@ end

group :development do
gem 'haml_lint', require: false
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'solargraph'
gem 'rubocop', require: false
gem 'rubocop-rails', require: false
Expand Down
Loading