Skip to content

Commit 764c346

Browse files
committed
Improve testing matrix for this gem.
Consistently run all tests against both the latest released Rails version as well as Rails edge. Also drop tests for Ruby 3.2 as it is EOL.
1 parent e2f1cae commit 764c346

20 files changed

Lines changed: 264 additions & 158 deletions

.github/workflows/dependencies.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,14 @@ jobs:
3939
name: Bundle update adapters
4040
run: |
4141
for gemfile_path in gemfiles/*.gemfile; do
42+
# Edge Gemfiles intentionally have no lockfile so CI resolves rails/main at run time.
43+
case "${gemfile_path}" in
44+
*_edge.gemfile) continue ;;
45+
esac
46+
4247
BUNDLE_GEMFILE="${gemfile_path}" bundle update
4348
done
49+
rm -f gemfiles/*_edge.gemfile.lock
4450
-
4551
name: Create Pull Request
4652
id: cpr

.github/workflows/test.yml

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ concurrency:
1515

1616
jobs:
1717
semian:
18-
name: Ruby ${{ matrix.ruby }} / semian
18+
name: Ruby ${{ matrix.ruby }} / semian / Rails ${{ matrix.rails_version }}
1919
runs-on: ubuntu-latest
2020
container:
2121
image: ruby:${{ matrix.ruby }}
@@ -28,14 +28,21 @@ jobs:
2828
options: --hostname http-server
2929
env:
3030
CI: "1"
31-
BUNDLE_GEMFILE: Gemfile
31+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
3232
strategy:
33-
fail-fast: true
33+
fail-fast: false
3434
matrix:
3535
ruby:
3636
- "3.4"
3737
- "3.3"
38-
- "3.2"
38+
gemfile:
39+
- Gemfile
40+
- gemfiles/rails_edge.gemfile
41+
include:
42+
- gemfile: Gemfile
43+
rails_version: released
44+
- gemfile: gemfiles/rails_edge.gemfile
45+
rails_version: edge
3946
services:
4047
mysql:
4148
image: mysql:9.3
@@ -74,9 +81,9 @@ jobs:
7481
with:
7582
path: vendor/bundle
7683
# yamllint disable-line rule:line-length
77-
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-gems-${{ hashFiles( format('{0}.lock', env.BUNDLE_GEMFILE) ) }}
84+
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-semian-${{ matrix.rails_version }}-gems-${{ hashFiles(env.BUNDLE_GEMFILE, format('{0}.lock', env.BUNDLE_GEMFILE)) }}
7885
restore-keys: |
79-
${{ runner.os }}-ruby-${{ matrix.ruby }}-gems-
86+
${{ runner.os }}-ruby-${{ matrix.ruby }}-semian-${{ matrix.rails_version }}-gems-
8087
-
8188
name: Bundle
8289
run: |
@@ -122,18 +129,21 @@ jobs:
122129
ruby:
123130
- "3.4"
124131
- "3.3"
125-
- "3.2"
126132
gemfile:
127133
- grpc
128134
- mysql2
129135
- net_http
130136
- rails_mysql2
137+
- rails_mysql2_edge
131138
- rails_trilogy
139+
- rails_trilogy_edge
132140
- redis_4
133141
- redis_5
134142
- redis_client
135143
- activerecord_trilogy_adapter
144+
- activerecord_trilogy_adapter_edge
136145
- activerecord_postgresql_adapter
146+
- activerecord_postgresql_adapter_edge
137147
include:
138148
- gemfile: grpc
139149
adapter: grpc
@@ -143,8 +153,12 @@ jobs:
143153
adapter: net_http
144154
- gemfile: rails_mysql2
145155
adapter: rails_mysql2
156+
- gemfile: rails_mysql2_edge
157+
adapter: rails_mysql2
146158
- gemfile: rails_trilogy
147159
adapter: rails_trilogy
160+
- gemfile: rails_trilogy_edge
161+
adapter: rails_trilogy
148162
- gemfile: redis_4
149163
adapter: redis
150164
- gemfile: redis_5
@@ -153,8 +167,12 @@ jobs:
153167
adapter: redis_client
154168
- gemfile: activerecord_trilogy_adapter
155169
adapter: activerecord_trilogy_adapter
170+
- gemfile: activerecord_trilogy_adapter_edge
171+
adapter: activerecord_trilogy_adapter
156172
- gemfile: activerecord_postgresql_adapter
157173
adapter: activerecord_postgresql_adapter
174+
- gemfile: activerecord_postgresql_adapter_edge
175+
adapter: activerecord_postgresql_adapter
158176
services:
159177
mysql:
160178
image: mysql:9.3
@@ -193,7 +211,7 @@ jobs:
193211
with:
194212
path: vendor/bundle
195213
# yamllint disable-line rule:line-length
196-
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-${{ hashFiles( format('{0}.lock', env.BUNDLE_GEMFILE) ) }}
214+
key: ${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-${{ hashFiles(env.BUNDLE_GEMFILE, format('{0}.lock', env.BUNDLE_GEMFILE)) }}
197215
restore-keys: |
198216
${{ runner.os }}-ruby-${{ matrix.ruby }}-adapter-${{ matrix.gemfile }}-gems-
199217
-

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
.vscode/ipch
88
.vscode/launch.json
99
*.gem
10+
gemfiles/*_edge.gemfile.lock
1011
*.swo
1112
*.swp
1213
/checksums/

Gemfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ group :test do
1010
gem "benchmark-memory"
1111
gem "benchmark-ips"
1212
gem "memory_profiler"
13-
gem "minitest"
13+
gem "minitest", "5.26.2"
1414
gem "mocha"
1515
gem "pry-byebug", require: false
1616
gem "toxiproxy"
@@ -22,7 +22,7 @@ group :test do
2222
gem "mysql2", "~> 0.5"
2323
gem "trilogy", "~> 2.9"
2424
gem "pg", "~> 1.6"
25-
gem "activerecord", github: "rails/rails", branch: "main"
25+
gem "activerecord", "~> 8.1.0"
2626
gem "hiredis", "~> 0.6"
2727
# NOTE: v0.12.0 required for ruby 3.2.0. https://github.com/redis-rb/redis-client/issues/58
2828
gem "hiredis-client", ">= 0.12.0"

Gemfile.lock

Lines changed: 23 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gemfiles/activerecord_postgresql_adapter.gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ gem "webrick"
1111
gem "concurrent-ruby"
1212

1313
gem "pg", "~> 1.6"
14-
gem "activerecord", github: "rails/rails"
14+
gem "activerecord", "~> 8.1.0"
1515

1616
gemspec path: "../"

gemfiles/activerecord_postgresql_adapter.gemfile.lock

Lines changed: 23 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
source "https://rubygems.org"
4+
5+
gem "rake"
6+
gem "rake-compiler"
7+
gem "minitest"
8+
gem "mocha"
9+
gem "toxiproxy"
10+
gem "webrick"
11+
gem "concurrent-ruby"
12+
13+
gem "pg", "~> 1.6"
14+
gem "activerecord", github: "rails/rails", branch: "main"
15+
16+
gemspec path: "../"

gemfiles/activerecord_trilogy_adapter.gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ gem "webrick"
1111
gem "concurrent-ruby"
1212

1313
gem "trilogy", "~> 2.4"
14-
gem "activerecord", github: "rails/rails"
14+
gem "activerecord", "~> 8.1.0"
1515

1616
gemspec path: "../"

0 commit comments

Comments
 (0)