Skip to content

Commit 08eddbb

Browse files
authored
Update ActiveRecord and ActiveSupport dependencies for Rails 8.2 comp… (#329)
* Update ActiveRecord and ActiveSupport dependencies for Rails 8.2 compatibility * Add support for Ruby on Rails 8.1 in RSpec configuration files (+ postgresQL 18) * Add appraisal configurations for Rails 8.1 with PostgreSQL, MySQL, and SQLite3 support * Update Ruby version from 3.3.6 to 3.3.10 * Add exclusion for Ruby 3.1 with Rails 8.1 in RSpec SQLite configuration * 🚑 Add PSQL meta commands to global blacklist for improved input validation * 🔨 cleanup in SQLite adapter specs to use FileUtils for file deletion * Add Ruby 3.1 and Rails 6.1 configurations to RSpec YAML files * 🐛 [spec] Change connection handling specs to improve tenant configuration and reload logic (ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: companies)
1 parent 755a9a9 commit 08eddbb

17 files changed

+268
-25
lines changed

.github/workflows/rspec_mysql_8_0.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- 7_1
2929
- 7_2
3030
- 8_0
31+
- 8_1
3132
exclude:
3233
- ruby_version: jruby
3334
rails_version: 7_1
@@ -37,6 +38,12 @@ jobs:
3738
rails_version: 8_0
3839
- ruby_version: 3.1
3940
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
4047
env:
4148
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_mysql.gemfile
4249
CI: true

.github/workflows/rspec_pg_14.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- 7_1
2929
- 7_2
3030
- 8_0
31+
- 8_1
3132
exclude:
3233
- ruby_version: jruby
3334
rails_version: 7_1
@@ -37,6 +38,12 @@ jobs:
3738
rails_version: 8_0
3839
- ruby_version: 3.1
3940
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
4047
env:
4148
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_postgresql.gemfile
4249
CI: true
@@ -102,4 +109,4 @@ jobs:
102109
file: ./coverage/test-results.xml
103110
- name: Notify of test failure
104111
if: steps.rspec-tests.outcome == 'failure'
105-
run: exit 1
112+
run: exit 1

.github/workflows/rspec_pg_15.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- 7_1
2929
- 7_2
3030
- 8_0
31+
- 8_1
3132
exclude:
3233
- ruby_version: jruby
3334
rails_version: 7_1
@@ -37,6 +38,12 @@ jobs:
3738
rails_version: 8_0
3839
- ruby_version: 3.1
3940
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
4047
env:
4148
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_postgresql.gemfile
4249
CI: true
@@ -102,4 +109,4 @@ jobs:
102109
file: ./coverage/test-results.xml
103110
- name: Notify of test failure
104111
if: steps.rspec-tests.outcome == 'failure'
105-
run: exit 1
112+
run: exit 1

.github/workflows/rspec_pg_16.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ jobs:
2727
- 7_0
2828
- 7_1
2929
- 7_2
30+
- 8_0
31+
- 8_1
3032
exclude:
3133
- ruby_version: jruby
3234
rails_version: 7_1
@@ -36,6 +38,12 @@ jobs:
3638
rails_version: 8_0
3739
- ruby_version: 3.1
3840
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
3947
env:
4048
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_postgresql.gemfile
4149
CI: true
@@ -101,4 +109,4 @@ jobs:
101109
file: ./coverage/test-results.xml
102110
- name: Notify of test failure
103111
if: steps.rspec-tests.outcome == 'failure'
104-
run: exit 1
112+
run: exit 1

.github/workflows/rspec_pg_17.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- 7_1
2929
- 7_2
3030
- 8_0
31+
- 8_1
3132
exclude:
3233
- ruby_version: jruby
3334
rails_version: 7_1
@@ -37,6 +38,12 @@ jobs:
3738
rails_version: 8_0
3839
- ruby_version: 3.1
3940
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
4047
env:
4148
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_postgresql.gemfile
4249
CI: true
@@ -102,4 +109,4 @@ jobs:
102109
file: ./coverage/test-results.xml
103110
- name: Notify of test failure
104111
if: steps.rspec-tests.outcome == 'failure'
105-
run: exit 1
112+
run: exit 1

.github/workflows/rspec_pg_18.yml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name: RSpec PostgreSQL 18
2+
on:
3+
push:
4+
branches:
5+
- development
6+
- main
7+
pull_request:
8+
types: [opened, synchronize, reopened]
9+
release:
10+
types: [published]
11+
12+
jobs:
13+
test:
14+
name: ${{ github.workflow }}, Ruby ${{ matrix.ruby_version }}, Rails ${{ matrix.rails_version }}
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
ruby_version:
20+
- 3.1
21+
- 3.2
22+
- 3.3
23+
- 3.4
24+
- jruby
25+
rails_version:
26+
- 6_1
27+
- 7_0
28+
- 7_1
29+
- 7_2
30+
- 8_0
31+
- 8_1
32+
exclude:
33+
- ruby_version: jruby
34+
rails_version: 7_1
35+
- ruby_version: jruby
36+
rails_version: 7_2
37+
- ruby_version: jruby
38+
rails_version: 8_0
39+
- ruby_version: 3.1
40+
rails_version: 8_0
41+
- ruby_version: jruby
42+
rails_version: 8_1
43+
- ruby_version: 3.1
44+
rails_version: 8_1
45+
- ruby_version: 3.1
46+
rails_version: 6_1
47+
env:
48+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_postgresql.gemfile
49+
CI: true
50+
DATABASE_ENGINE: postgresql
51+
RUBY_VERSION: ${{ matrix.ruby_version }}
52+
RAILS_VERSION: ${{ matrix.rails_version }}
53+
services:
54+
postgres:
55+
image: postgres:18-alpine
56+
env:
57+
POSTGRES_PASSWORD: postgres
58+
POSTGRES_HOST_AUTH_METHOD: trust
59+
POSTGRES_DB: apartment_postgresql_test
60+
options: >-
61+
--health-cmd pg_isready
62+
--health-interval 10s
63+
--health-timeout 5s
64+
--health-retries 5
65+
ports:
66+
- 5432:5432
67+
steps:
68+
- name: Install PostgreSQL client
69+
run: |
70+
sudo apt-get update -qq
71+
sudo apt-get install -y --no-install-recommends postgresql-common
72+
echo | sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
73+
sudo apt-get update -qq
74+
sudo apt-get install -y --no-install-recommends postgresql-client-18
75+
- uses: actions/checkout@v4
76+
- name: Set up Ruby ${{ matrix.ruby-version }}
77+
uses: ruby/setup-ruby@v1
78+
with:
79+
ruby-version: ${{ matrix.ruby_version }}
80+
bundler-cache: true
81+
- name: Configure config database.yml
82+
run: bundle exec rake db:load_credentials
83+
- name: Database Setup
84+
run: bundle exec rake db:test:prepare
85+
- name: Run tests
86+
id: rspec-tests
87+
timeout-minutes: 20
88+
continue-on-error: true
89+
run: |
90+
mkdir -p ./coverage
91+
bundle exec rspec --format progress \
92+
--format RspecJunitFormatter -o ./coverage/test-results.xml \
93+
--profile
94+
- name: Codecov Upload
95+
uses: codecov/codecov-action@v4
96+
with:
97+
token: ${{ secrets.CODECOV_TOKEN }}
98+
verbose: true
99+
disable_search: true
100+
env_vars: DATABASE_ENGINE, RUBY_VERSION, RAILS_VERSION
101+
file: ./coverage/coverage.json
102+
- name: Upload test results to Codecov
103+
uses: codecov/test-results-action@v1
104+
with:
105+
token: ${{ secrets.CODECOV_TOKEN }}
106+
verbose: true
107+
disable_search: true
108+
env_vars: DATABASE_ENGINE, RUBY_VERSION, RAILS_VERSION
109+
file: ./coverage/test-results.xml
110+
- name: Notify of test failure
111+
if: steps.rspec-tests.outcome == 'failure'
112+
run: exit 1

.github/workflows/rspec_sqlite_3.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,14 @@ jobs:
2828
- 7_1
2929
- 7_2
3030
- 8_0
31+
- 8_1
3132
exclude:
3233
- ruby_version: 3.1
3334
rails_version: 8_0
34-
# - ruby_version: jruby
35-
# rails_version: 7_1
36-
# - ruby_version: jruby
37-
# rails_version: 7_2
38-
# - ruby_version: jruby
39-
# rails_version: 8_0
35+
- ruby_version: 3.1
36+
rails_version: 8_1
37+
- ruby_version: 3.1
38+
rails_version: 6_1
4039
env:
4140
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails_${{ matrix.rails_version }}${{ matrix.ruby_version == 'jruby' && '_jdbc' || '' }}_sqlite3.gemfile
4241
CI: true
@@ -81,4 +80,4 @@ jobs:
8180
file: ./coverage/test-results.xml
8281
- name: Notify of test failure
8382
if: steps.rspec-tests.outcome == 'failure'
84-
run: exit 1
83+
run: exit 1

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.3.6
1+
3.3.10

Appraisals

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,18 @@ appraise 'rails-8-0-sqlite3' do
128128
gem 'rails', '~> 8.0.0'
129129
gem 'sqlite3', '~> 2.1'
130130
end
131+
132+
appraise 'rails-8-1-postgresql' do
133+
gem 'rails', '~> 8.1.0'
134+
gem 'pg', '~> 1.6.0'
135+
end
136+
137+
appraise 'rails-8-1-mysql' do
138+
gem 'rails', '~> 8.1.0'
139+
gem 'mysql2', '~> 0.5'
140+
end
141+
142+
appraise 'rails-8-1-sqlite3' do
143+
gem 'rails', '~> 8.1.0'
144+
gem 'sqlite3', '~> 2.8'
145+
end

gemfiles/rails_8_1_mysql.gemfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# This file was generated by Appraisal
2+
3+
source "http://rubygems.org"
4+
5+
gem "appraisal", "~> 2.3"
6+
gem "bundler", "< 3.0"
7+
gem "pry", "~> 0.13"
8+
gem "rake", "< 14.0"
9+
gem "rspec", "~> 3.10"
10+
gem "rspec_junit_formatter", "~> 0.4"
11+
gem "rspec-rails", ">= 6.1.0", "< 8.1"
12+
gem "rubocop", "~> 1.12"
13+
gem "rubocop-performance", "~> 1.10"
14+
gem "rubocop-rails", "~> 2.10"
15+
gem "rubocop-rake", "~> 0.5"
16+
gem "rubocop-rspec", "~> 3.1"
17+
gem "rubocop-thread_safety", "~> 0.4"
18+
gem "simplecov", require: false
19+
gem "rails", "~> 8.1.0"
20+
gem "mysql2", "~> 0.5"
21+
22+
gemspec path: "../"

0 commit comments

Comments
 (0)