Skip to content

Commit 71a0de5

Browse files
authored
Setup Test Matrix for Rails versions (#21)
Closes #18 - Added Appraisals gem and set up `Appraisals` file. - Generated gemfiles for Rails 7.0 - 8.1.beta1 - Updated `build.yml` matrix to use the new gemfiles and set env to use the right file for the test run. - Configured `build.yml` to run on PRs against `main`
1 parent 05a5ea1 commit 71a0de5

15 files changed

Lines changed: 1133 additions & 52 deletions

.github/workflows/build.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ on:
44
push:
55
branches:
66
- main
7-
87
pull_request:
8+
branches:
9+
- main
910

1011
jobs:
1112
build:
@@ -17,6 +18,15 @@ jobs:
1718
- '3.2'
1819
- '3.3'
1920
- '3.4'
21+
gemfile:
22+
- rails_7_0
23+
- rails_7_1
24+
- rails_7_2
25+
- rails_8_0
26+
- rails_8_1
27+
28+
env:
29+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
2030

2131
steps:
2232
- name: Checkout

.rubocop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ AllCops:
55
Exclude:
66
- node_modules/**/*
77
- vendor/**/*
8+
- gemfiles/**/*
89

910
Style/StringLiterals:
1011
Enabled: true

Appraisals

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# frozen_string_literal: true
2+
3+
appraise "rails-7-0" do
4+
gem "actionview", "~> 7.0"
5+
gem "railties", "~> 7.0"
6+
end
7+
8+
appraise "rails-7-1" do
9+
gem "actionview", "~> 7.1"
10+
gem "railties", "~> 7.1"
11+
end
12+
13+
appraise "rails-7-2" do
14+
gem "actionview", "~> 7.2"
15+
gem "railties", "~> 7.2"
16+
end
17+
18+
appraise "rails-8-0" do
19+
gem "actionview", "~> 8.0"
20+
gem "railties", "~> 8.0"
21+
end
22+
23+
appraise "rails-8-1" do
24+
gem "actionview", "~> 8.1.0.beta1"
25+
gem "railties", "~> 8.1.0.beta1"
26+
end

Gemfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ source "https://rubygems.org"
44

55
gemspec
66

7-
gem "actionview", "~> 8.0"
7+
gem "appraisal"
88
# gem "herb", path: "../herb"
99
gem "maxitest"
1010
gem "minitest", "~> 5.16"
1111
gem "minitest-difftastic"
12-
gem "railties", "~> 8.0"
1312
gem "rake", "~> 13.0"
1413
gem "rubocop", "~> 1.80.1"

Gemfile.lock

Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,6 @@ PATH
88
GEM
99
remote: https://rubygems.org/
1010
specs:
11-
actionpack (8.0.2.1)
12-
actionview (= 8.0.2.1)
13-
activesupport (= 8.0.2.1)
14-
nokogiri (>= 1.8.5)
15-
rack (>= 2.2.4)
16-
rack-session (>= 1.0.1)
17-
rack-test (>= 0.6.3)
18-
rails-dom-testing (~> 2.2)
19-
rails-html-sanitizer (~> 1.6)
20-
useragent (~> 0.16)
2111
actionview (8.0.2.1)
2212
activesupport (= 8.0.2.1)
2313
builder (~> 3.1)
@@ -37,6 +27,10 @@ GEM
3727
securerandom (>= 0.3)
3828
tzinfo (~> 2.0, >= 2.0.5)
3929
uri (>= 0.13.1)
30+
appraisal (2.5.0)
31+
bundler
32+
rake
33+
thor (>= 0.14.0)
4034
ast (2.4.3)
4135
base64 (0.3.0)
4236
benchmark (0.4.1)
@@ -45,7 +39,6 @@ GEM
4539
concurrent-ruby (1.3.5)
4640
connection_pool (2.5.4)
4741
crass (1.0.6)
48-
date (3.4.1)
4942
difftastic (0.7.0)
5043
pretty_please
5144
difftastic (0.7.0-arm64-darwin)
@@ -57,7 +50,6 @@ GEM
5750
dispersion (0.2.0)
5851
prism
5952
drb (2.2.3)
60-
erb (5.0.2)
6153
erubi (1.13.1)
6254
herb (0.7.2-aarch64-linux-gnu)
6355
herb (0.7.2-aarch64-linux-musl)
@@ -69,11 +61,6 @@ GEM
6961
herb (0.7.2-x86_64-linux-musl)
7062
i18n (1.14.7)
7163
concurrent-ruby (~> 1.0)
72-
io-console (0.8.1)
73-
irb (1.15.2)
74-
pp (>= 0.6.0)
75-
rdoc (>= 4.0.0)
76-
reline (>= 0.4.2)
7764
json (2.13.2)
7865
language_server-protocol (3.17.0.5)
7966
lint_roller (1.1.0)
@@ -106,47 +93,20 @@ GEM
10693
parser (3.3.9.0)
10794
ast (~> 2.4.1)
10895
racc
109-
pp (0.6.2)
110-
prettyprint
11196
pretty_please (0.2.0)
11297
dispersion (~> 0.2)
113-
prettyprint (0.2.0)
11498
prism (1.4.0)
115-
psych (5.2.6)
116-
date
117-
stringio
11899
racc (1.8.1)
119-
rack (3.2.1)
120-
rack-session (2.1.1)
121-
base64 (>= 0.1.0)
122-
rack (>= 3.0.0)
123-
rack-test (2.2.0)
124-
rack (>= 1.3)
125-
rackup (2.2.1)
126-
rack (>= 3)
127100
rails-dom-testing (2.3.0)
128101
activesupport (>= 5.0.0)
129102
minitest
130103
nokogiri (>= 1.6)
131104
rails-html-sanitizer (1.6.2)
132105
loofah (~> 2.21)
133106
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
134-
railties (8.0.2.1)
135-
actionpack (= 8.0.2.1)
136-
activesupport (= 8.0.2.1)
137-
irb (~> 1.13)
138-
rackup (>= 1.0.0)
139-
rake (>= 12.2)
140-
thor (~> 1.0, >= 1.2.2)
141-
zeitwerk (~> 2.6)
142107
rainbow (3.1.1)
143108
rake (13.3.0)
144-
rdoc (6.14.2)
145-
erb
146-
psych (>= 4.0.0)
147109
regexp_parser (2.11.2)
148-
reline (0.6.2)
149-
io-console (~> 0.5)
150110
rubocop (1.80.2)
151111
json (~> 2.3)
152112
language_server-protocol (~> 3.17.0.2)
@@ -163,16 +123,13 @@ GEM
163123
prism (~> 1.4)
164124
ruby-progressbar (1.13.0)
165125
securerandom (0.4.1)
166-
stringio (3.1.7)
167126
thor (1.4.0)
168127
tzinfo (2.0.6)
169128
concurrent-ruby (~> 1.0)
170129
unicode-display_width (3.1.5)
171130
unicode-emoji (~> 4.0, >= 4.0.4)
172131
unicode-emoji (4.0.4)
173132
uri (1.0.3)
174-
useragent (0.16.11)
175-
zeitwerk (2.7.3)
176133

177134
PLATFORMS
178135
aarch64-linux-gnu
@@ -186,11 +143,10 @@ PLATFORMS
186143
x86_64-linux-musl
187144

188145
DEPENDENCIES
189-
actionview (~> 8.0)
146+
appraisal
190147
maxitest
191148
minitest (~> 5.16)
192149
minitest-difftastic
193-
railties (~> 8.0)
194150
rake (~> 13.0)
195151
reactionview!
196152
rubocop (~> 1.80.1)

gemfiles/rails_7_0.gemfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# This file was generated by Appraisal
2+
3+
source "https://rubygems.org"
4+
5+
gem "appraisal"
6+
gem "maxitest"
7+
gem "minitest", "~> 5.16"
8+
gem "minitest-difftastic"
9+
gem "rake", "~> 13.0"
10+
gem "rubocop", "~> 1.80.1"
11+
gem "actionview", "~> 7.0"
12+
gem "railties", "~> 7.0"
13+
14+
gemspec path: "../"

0 commit comments

Comments
 (0)