Skip to content

Commit 7c70c08

Browse files
authored
Upgrade to Rails 7.1 (#585)
* Update Ruby version in DockerfileBase to 3.3 * button_to changes * Load new defaults * Update deps * Fixes * Log background daemon also to stdout for convenience * Occasionally print the names of running background tasks * Fixes * Import fixes * Small fixes * Update bundler version * Dockerfile update * Update Ruby version to 3.0 in GitHub actions * Fix factories * Test fixes * Belongs to changes * Fix rest of model specs * Fix controller specs * WIP usermanual tests * Rubocop * Install chromium in Dockerfile * Revert "WIP usermanual tests" This reverts commit abd9f90. * Test fixes * Update Docker compose commands in CI workflow * Stop running spec/usermanual
1 parent 4399c1e commit 7c70c08

File tree

74 files changed

+688
-536
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+688
-536
lines changed

.github/workflows/ci.yml

Lines changed: 18 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ jobs:
1818
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
1919
git submodule update --init --recursive
2020
- name: Docker compose build
21-
run: docker-compose build
21+
run: docker compose build
2222
- name: Setup database & test env
23-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
23+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
2424
- name: Run spec_v8 tests
25-
run: docker-compose run web bin/spec_v8
25+
run: docker compose run web bin/spec_v8
2626

2727
spec_models:
2828
runs-on: ubuntu-latest
@@ -36,11 +36,11 @@ jobs:
3636
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
3737
git submodule update --init --recursive
3838
- name: Docker compose build
39-
run: docker-compose build
39+
run: docker compose build
4040
- name: Setup database & test env
41-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
41+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
4242
- name: Run spec_models tests
43-
run: docker-compose run web bin/spec_models
43+
run: docker compose run web bin/spec_models
4444

4545
spec_controllers:
4646
runs-on: ubuntu-latest
@@ -54,11 +54,11 @@ jobs:
5454
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
5555
git submodule update --init --recursive
5656
- name: Docker compose build
57-
run: docker-compose build
57+
run: docker compose build
5858
- name: Setup database & test env
59-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
59+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
6060
- name: Run spec_controllers tests
61-
run: docker-compose run web bin/spec_controllers
61+
run: docker compose run web bin/spec_controllers
6262

6363
spec_features:
6464
runs-on: ubuntu-latest
@@ -72,11 +72,11 @@ jobs:
7272
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
7373
git submodule update --init --recursive
7474
- name: Docker compose build
75-
run: docker-compose build
75+
run: docker compose build
7676
- name: Setup database & test env
77-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
77+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
7878
- name: Run spec_features tests
79-
run: docker-compose run web bin/spec_features
79+
run: docker compose run web bin/spec_features
8080

8181
spec_lib:
8282
runs-on: ubuntu-latest
@@ -90,11 +90,11 @@ jobs:
9090
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
9191
git submodule update --init --recursive
9292
- name: Docker compose build
93-
run: docker-compose build
93+
run: docker compose build
9494
- name: Setup database & test env
95-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
95+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
9696
- name: Run spec_lib tests
97-
run: docker-compose run web bin/spec_lib
97+
run: docker compose run web bin/spec_lib
9898

9999
spec_integration:
100100
runs-on: ubuntu-latest
@@ -108,32 +108,8 @@ jobs:
108108
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
109109
git submodule update --init --recursive
110110
- name: Docker compose build
111-
run: docker-compose build
111+
run: docker compose build
112112
- name: Setup database & test env
113-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
113+
run: docker compose run web bin/rake db:create db:schema:load RAILS_ENV=test
114114
- name: Run spec_integration tests
115-
run: docker-compose run web bin/spec_integration
116-
117-
spec_usermanual:
118-
runs-on: ubuntu-latest
119-
steps:
120-
- name: Checkout repository
121-
uses: actions/checkout@v2
122-
with:
123-
submodules: false
124-
- name: Setup git submodules
125-
run: |
126-
sed -i 's/[email protected]:/https:\/\/github.com\//' .gitmodules
127-
git submodule update --init --recursive
128-
- name: Docker compose build
129-
run: docker-compose build
130-
- name: Setup database & test env
131-
run: docker-compose run web bin/rake db:create db:schema:load RAILS_ENV=test
132-
- name: Run spec_usermanual tests
133-
run: docker-compose run web bin/spec_usermanual
134-
- name: Update manual to testmycode-usermanual
135-
uses: JamesIves/[email protected]
136-
with:
137-
branch: gh-pages
138-
folder: doc/usermanual
139-
target-folder: usermanual
115+
run: docker compose run web bin/spec_integration

.github/workflows/rubocop.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212

1313
steps:
1414
- uses: actions/checkout@v2
15-
- name: Set up Ruby 2.6
15+
- name: Set up Ruby 3.0
1616
uses: ruby/setup-ruby@v1
1717
with:
18-
ruby-version: 2.6
18+
ruby-version: 3.0
1919
- name: Cache gems
2020
uses: actions/cache@v1
2121
with:

Dockerfile

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
FROM eu.gcr.io/moocfi-public/tmc-server-base:latest
2-
LABEL name tmc-server
2+
LABEL name=tmc-server
3+
4+
RUN apt-get update \
5+
&& apt-get -y install curl gnupg nodejs chromium \
6+
&& rm -rf /var/lib/apt/lists/*
37

48
ADD Gemfile /app/Gemfile
59
ADD Gemfile.lock /app/Gemfile.lock
6-
RUN bundle install --system --gemfile /app/Gemfile
7-
RUN apt-get update
8-
RUN apt-get -y install curl gnupg
9-
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
10-
RUN apt-get -y install nodejs
10+
RUN bundle config set path.system true \
11+
&& bundle install --gemfile /app/Gemfile
12+
1113
ADD . /app

DockerfileBase

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ruby:2.6
1+
FROM ruby:3.3
22
LABEL name tmc-server-base
33

44
ENV PHANTOMJS_VERSION 2.1.1

Gemfile

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,79 +4,81 @@ source 'https://rubygems.org'
44
# An alternative when rubygems.org is down
55
# source 'http://production.cf.rubygems.org/'
66

7-
gem 'rails', '~> 6.1'
7+
gem 'rails', '~> 7.1', '>= 7.1.3.4'
88

9-
gem 'activerecord-import', '~> 1.2'
10-
gem 'activerecord-session_store', '~> 2.0'
11-
gem 'argon2', '~> 2.0' # Held back, higher requires Ruby 2.6 from tmc-server-base
9+
gem 'activerecord-import', '~> 1.7'
10+
gem 'activerecord-session_store', '~> 2.1'
11+
gem 'argon2', '~> 2.3'
1212
gem 'bootstrap', '~> 4.6' # Held back to 4.6
13-
gem 'cancancan', '~> 3.3'
14-
gem 'doorkeeper', '~> 5.5'
15-
gem 'doorkeeper-openid_connect'
16-
gem 'file_validators' # Used to validate organization logo
17-
gem 'font-awesome-rails'
18-
gem 'google_drive', '~> 3.0', require: false
19-
gem 'gravtastic', '~> 3.2' # Used to display user avatars
20-
gem 'image_processing' # Used by active_storage to make logo 100x100 on the fly
21-
gem 'logstasher', '~> 2.1'
22-
gem 'natcmp', '~> 1.4'
23-
gem 'newrelic_rpm', '~> 8.0'
24-
gem 'pdfkit', '~> 0.8', require: false
25-
gem 'pg', '~> 1.2'
26-
gem 'pghero', '~> 2.8'
27-
gem 'rack-attack', '~> 6.5', require: false
28-
gem 'rack-cors', '~> 1.1'
29-
gem 'rack-mini-profiler', '~> 2.3'
30-
gem 'rake'
31-
gem 'responders', '~> 3.0'
13+
gem 'cancancan', '~> 3.6', '>= 3.6.1'
14+
gem 'doorkeeper', '~> 5.7', '>= 5.7.1'
15+
gem 'doorkeeper-openid_connect', '~> 1.8', '>= 1.8.9'
16+
gem 'file_validators', '~> 3.0' # Used to validate organization logo
17+
gem 'font-awesome-rails', '~> 4.7', '>= 4.7.0.8'
18+
gem 'google_drive', '~> 3.0', '>= 3.0.7', require: false
19+
gem 'gravtastic', '~> 3.2', '>= 3.2.6' # Used to display user avatars
20+
gem 'image_processing', '~> 1.12', '>= 1.12.2' # Used by active_storage to make logo 100x100 on the fly
21+
gem 'logstasher', '~> 2.1', '>= 2.1.5'
22+
gem 'natcmp', '~> 1.4', '>= 1.4.3'
23+
gem 'newrelic_rpm', '~> 9.11'
24+
gem 'pdfkit', '~> 0.8.7.3', require: false
25+
gem 'pg', '~> 1.5', '>= 1.5.6'
26+
gem 'pghero', '~> 3.5'
27+
gem 'rack-attack', '~> 6.7', require: false
28+
gem 'rack-cors', '~> 2.0', '>= 2.0.2'
29+
gem 'rack-mini-profiler', '~> 3.3', '>= 3.3.1'
30+
gem 'rake', '~> 13.2', '>= 13.2.1'
31+
gem 'responders', '~> 3.1', '>= 3.1.1'
3232
gem 'rest-client', '~> 2.1', require: false
3333
gem 'swagger-blocks', '~> 3.0'
34-
gem 'sassc-rails', '~> 2.1'
35-
gem 'xml-simple', '~> 1.1', require: false
34+
gem 'sassc-rails', '~> 2.1', '>= 2.1.2'
35+
gem 'xml-simple', '~> 1.1', '>= 1.1.9', require: false
36+
gem 'cgi', '~> 0.3.6'
3637

37-
gem 'hiredis', '~> 0.6' # Redis for caching
38+
gem 'hiredis', '~> 0.6.3' # Redis for caching
3839
gem 'readthis', '~> 2.2' # Redis for caching
3940
gem 'redis', '~> 4.5' # Redis for caching (TODO: Remove and migrate to rails cache)
4041

4142
group :assets do
42-
gem 'jquery-rails', '~> 4.4'
43-
gem 'sprockets-rails', require: 'sprockets/railtie'
43+
gem 'jquery-rails', '~> 4.6'
44+
gem 'sprockets-rails', '~> 3.5', '>= 3.5.1', require: 'sprockets/railtie'
4445
gem 'uglifier', '~> 4.2'
4546
end
4647

4748
group :development, :test do
48-
gem 'capybara', '~> 3.35'
49-
gem 'factory_bot_rails', '~> 6.2'
50-
gem 'puma', '~> 5.5'
49+
gem 'capybara', '~> 3.40'
50+
gem 'factory_bot_rails', '~> 6.4', '>= 6.4.3'
51+
gem 'puma', '~> 6.4', '>= 6.4.2'
52+
gem 'thin', '~> 1.8', '>= 1.8.2' # A transitive dependency, this forces the latest version
5153
# gem 'passenger', '~> 5.0', require: "phusion_passenger/rack_handler"
52-
gem 'poltergeist', '~> 1.18'
53-
gem 'rspec', '~> 3.10'
54-
gem 'rspec-activemodel-mocks', '~> 1.1'
55-
gem 'rspec-core', '~> 3.10'
56-
gem 'rspec-rails', '~> 5.0'
57-
gem 'rails-controller-testing'
54+
gem 'poltergeist', '~> 1.18', '>= 1.18.1'
55+
gem 'rspec', '~> 3.13'
56+
gem 'rspec-activemodel-mocks', '~> 1.2'
57+
gem 'rspec-core', '~> 3.13'
58+
gem 'rspec-rails', '~> 6.1', '>= 6.1.3'
59+
gem 'rails-controller-testing', '~> 1.0', '>= 1.0.5'
5860
# gem 'selenium-webdriver', '~> 2.44.0'
59-
gem 'irb'
60-
gem 'brakeman', require: false
61-
gem 'bundler-audit'
62-
gem 'pry'
63-
gem 'pry-byebug'
64-
gem 'pry-rails'
61+
gem 'irb', '~> 1.14'
62+
gem 'brakeman', '~> 6.1', '>= 6.1.2', require: false
63+
gem 'bundler-audit', '~> 0.9.1'
64+
gem 'pry', '~> 0.14.2'
65+
gem 'pry-byebug', '~> 3.10', '>= 3.10.1'
66+
gem 'pry-rails', '~> 0.3.11'
6567

66-
gem 'database_cleaner', '~> 2.0'
67-
gem 'launchy' # for capybara's save_and_open_page
68-
gem 'mimic', '~> 0.4'
69-
gem 'railroady' # for doc/diagrams
70-
gem 'rubocop', '~> 1.13', require: false # HoundCI requires 1.5.2
71-
gem 'rubocop-rails_config', '~> 1.5' # Rubocop locked
72-
gem 'ruby-prof', '~> 1.4' # for performance tests
73-
gem 'simplecov', require: false
68+
gem 'database_cleaner', '~> 2.0', '>= 2.0.2'
69+
gem 'launchy', '~> 3.0', '>= 3.0.1' # for capybara's save_and_open_page
70+
gem 'mimic', '~> 0.4.4'
71+
gem 'railroady', '~> 1.6' # for doc/diagrams
72+
gem 'rubocop', '~> 1.65', require: false
73+
gem 'rubocop-rails_config', '~> 1.16' # Rubocop locked
74+
gem 'ruby-prof', '~> 1.7' # for performance tests
75+
gem 'simplecov', '~> 0.22.0', require: false
7476
end
7577

7678
group :development do
77-
gem 'letter_opener', '~> 1.7'
79+
gem 'letter_opener', '~> 1.10'
7880
end
7981

8082
group :test do
81-
gem 'json-schema', '~> 2.8'
83+
gem 'json-schema', '~> 4.3'
8284
end

0 commit comments

Comments
 (0)