Skip to content

Commit 97b3e8c

Browse files
pkuczynskiNuzair46
andauthored
ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies (#373)
Co-authored-by: Red <[email protected]>
1 parent 1b5581d commit 97b3e8c

File tree

141 files changed

+3508
-101
lines changed

Some content is hidden

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

141 files changed

+3508
-101
lines changed

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.idea
22
.bundle
3-
gemfiles/*.lock
4-
gemfiles/bin
3+
gemfiles
54
log
65
pkg
76
spec/app/**/db/*.sqlite*

Appraisals

Lines changed: 60 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,93 @@
1-
# Rails 5.x, 6.0 requires Ruby < 3
2-
if RUBY_ENGINE == 'ruby' && RUBY_VERSION <= '3.0'
1+
max_ruby_version = ->(version) {
2+
RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) <= Gem::Version.new(version)
3+
}
4+
5+
min_ruby_version = ->(version) {
6+
RUBY_ENGINE == 'ruby' && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(version)
7+
}
8+
9+
# Rails 5.x, 6.0 require Ruby < 3
10+
if max_ruby_version.call('3.0')
311
appraise 'rails-5.2' do
412
gem 'activerecord-jdbcsqlite3-adapter', '~> 52.5', platform: :jruby
513
gem 'bootsnap', '~> 1.4'
6-
gem 'rails', '5.2.8.1'
14+
gem 'rails', '~> 5.2.0'
715
gem 'rspec-rails', '~> 3.7'
816
gem 'sqlite3', '< 1.4.0', platform: :ruby
917
end
1018

1119
appraise 'rails-6.0' do
1220
gem 'activerecord-jdbcsqlite3-adapter', '~> 60.1', platform: :jruby
1321
gem 'bootsnap', '~> 1.4'
14-
gem 'rails', '6.0.6.1'
22+
gem 'rails', '~> 6.0.0'
1523
gem 'rspec-rails', '~> 3.7'
16-
gem 'sqlite3', '~> 1.4.0', platform: :ruby
24+
gem 'sqlite3', '~> 1', platform: :ruby
1725
end
1826
end
1927

20-
# Test rails 6.1 with psych >= 4
2128
appraise 'rails-6.1' do
2229
gem 'activerecord-jdbcsqlite3-adapter', '~> 61.1', platform: :jruby
2330
gem 'bootsnap', '>= 1.4.4'
24-
gem 'drb', '~> 2.2' if RUBY_VERSION >= '3.4'
25-
gem 'mutex_m', '~> 0.2.0' if RUBY_VERSION >= '3.4'
26-
gem 'rails', '6.1.7.10'
27-
gem 'rspec-rails', '~> 5.0'
28-
gem 'sqlite3', '~> 1.4', platform: :ruby
31+
gem 'drb', '~> 2.2' if min_ruby_version.call('3.4')
32+
gem 'mutex_m', '~> 0.2.0' if min_ruby_version.call('3.4')
2933
gem 'psych', '>= 4'
34+
gem 'rails', '~> 6.1.0'
35+
gem 'rspec-rails', '~> 5.0'
36+
gem 'sqlite3', '~> 1', platform: :ruby
3037
end
3138

32-
# Temporarily exclude Truffleruby and JRuby from testing in Rails 7.x until they fix the issues upstream.
33-
# See https://github.com/rubyconfig/config/pull/344#issuecomment-1766209753
34-
# if (RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.7') || RUBY_ENGINE != 'ruby'
35-
if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.7'
39+
# Rails 7.0 require Ruby > 2.7
40+
if min_ruby_version.call('2.7') || RUBY_ENGINE != 'ruby'
3641
appraise 'rails-7.0' do
3742
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
38-
gem 'sqlite3', '~> 1.6.4', platform: :ruby
3943
gem 'bootsnap', '>= 1.4.4'
40-
gem 'drb', '~> 2.2' if RUBY_VERSION >= '3.4'
41-
gem 'mutex_m', '~> 0.2.0' if RUBY_VERSION >= '3.4'
42-
gem 'rails', '7.0.8.7'
43-
gem 'rspec-rails', '~> 6.0.3'
44-
gem 'sprockets-rails', '~> 3.4.2'
44+
gem 'drb', '~> 2.2' if min_ruby_version.call('3.4')
45+
gem 'mutex_m', '~> 0.2.0' if min_ruby_version.call('3.4')
4546
gem 'psych', '>= 4'
47+
gem 'rails', '~> 7.0.0'
48+
gem 'rspec-rails', '~> 7.0'
49+
gem 'sprockets-rails', '~> 3.5.2'
50+
gem 'sqlite3', '~> 1', platform: :ruby
4651
end
52+
end
4753

54+
# Rails 7.1 require Ruby > 2.7
55+
if min_ruby_version.call('2.7') && RUBY_ENGINE != 'jruby'
4856
appraise 'rails-7.1' do
4957
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
50-
gem 'sqlite3', '~> 1.6.6', platform: :ruby
5158
gem 'bootsnap', '>= 1.16.0'
52-
gem 'rails', '7.1.5.1'
53-
gem 'rspec-rails', '~> 6.0.3'
54-
gem 'sprockets-rails', '~> 3.4.2'
5559
gem 'psych', '>= 4'
60+
gem 'rails', '~> 7.1.0'
61+
gem 'rspec-rails', '~> 7.0'
62+
gem 'sprockets-rails', '~> 3.5.2'
63+
gem 'sqlite3', '~> 1', platform: :ruby
64+
end
65+
66+
end
67+
68+
# Rails 7.2 requires Ruby > 3.1
69+
if min_ruby_version.call('3.1.0') && RUBY_ENGINE != 'jruby'
70+
appraise 'rails-7.2' do
71+
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
72+
gem 'bootsnap', '>= 1.16.0'
73+
gem 'psych', '>= 4'
74+
gem 'rails', '~> 7.2.0'
75+
gem 'rspec-rails', '~> 7.0'
76+
gem 'sprockets-rails', '~> 3.5.2'
77+
gem 'sqlite3', '~> 1', platform: :ruby
78+
end
79+
end
80+
81+
# Rails 8.0 requires Ruby > 3.2
82+
if min_ruby_version.call('3.2.0') && RUBY_ENGINE != 'jruby'
83+
appraise 'rails-8.0' do
84+
gem 'activerecord-jdbcsqlite3-adapter', '~> 70.1', platform: :jruby
85+
gem 'bootsnap', '>= 1.16.0'
86+
gem 'kamal', '~> 2.7.0'
87+
gem 'rails', '~> 8.0.0'
88+
gem 'rspec-rails', '~> 8.0'
89+
gem 'psych', '>= 4'
90+
gem 'sqlite3', '>= 2.1', platform: :ruby
5691
end
5792
end
5893

config.gemspec

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ Gem::Specification.new do |s|
4040
# Default RSpec run will test against latest Rails app
4141
unless ENV['APPRAISAL_INITIALIZED'] || ENV['GITHUB_ACTIONS']
4242
gems_to_install = /gem "(.*?)", "(.*?)"(?!, platform: (?!\[:ruby\]))/
43-
File.read(Dir['gemfiles/rails*.gemfile'].sort.last).scan(gems_to_install) do |name, version|
44-
s.add_development_dependency name, version
43+
44+
if Dir.exist?('gemfiles')
45+
rails_gemfiles = Dir['gemfiles/rails*.gemfile'].sort
46+
unless rails_gemfiles.empty?
47+
File.read(rails_gemfiles.last).scan(gems_to_install) do |name, version|
48+
s.add_development_dependency name, version
49+
end
50+
end
4551
end
4652
end
4753

gemfiles/rails_5.2.gemfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

gemfiles/rails_6.0.gemfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

gemfiles/rails_6.1.gemfile

Lines changed: 0 additions & 14 deletions
This file was deleted.

gemfiles/rails_7.0.gemfile

Lines changed: 0 additions & 15 deletions
This file was deleted.

gemfiles/rails_7.1.gemfile

Lines changed: 0 additions & 13 deletions
This file was deleted.

gemfiles/sinatra.gemfile

Lines changed: 0 additions & 7 deletions
This file was deleted.

spec/app/rails_7.2/.dockerignore

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
2+
3+
# Ignore git directory.
4+
/.git/
5+
/.gitignore
6+
7+
# Ignore bundler config.
8+
/.bundle
9+
10+
# Ignore all environment files (except templates).
11+
/.env*
12+
!/.env*.erb
13+
14+
# Ignore all default key files.
15+
/config/master.key
16+
/config/credentials/*.key
17+
18+
# Ignore all logfiles and tempfiles.
19+
/log/*
20+
/tmp/*
21+
!/log/.keep
22+
!/tmp/.keep
23+
24+
# Ignore pidfiles, but keep the directory.
25+
/tmp/pids/*
26+
!/tmp/pids/.keep
27+
28+
# Ignore storage (uploaded files in development and any SQLite databases).
29+
/storage/*
30+
!/storage/.keep
31+
/tmp/storage/*
32+
!/tmp/storage/.keep
33+
34+
# Ignore assets.
35+
/node_modules/
36+
/app/assets/builds/*
37+
!/app/assets/builds/.keep
38+
/public/assets
39+
40+
# Ignore CI service files.
41+
/.github
42+
43+
# Ignore development files
44+
/.devcontainer
45+
46+
# Ignore Docker-related files
47+
/.dockerignore
48+
/Dockerfile*

0 commit comments

Comments
 (0)