Skip to content

Commit 342f23b

Browse files
authored
Merge pull request #293 from willnet/improve-ci
Improve CI
2 parents 5387c2c + 99acdb6 commit 342f23b

File tree

7 files changed

+269
-18
lines changed

7 files changed

+269
-18
lines changed

.github/workflows/ci.yml

Lines changed: 258 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,262 @@ jobs:
99
runs-on: ubuntu-latest
1010
strategy:
1111
matrix:
12-
ruby-version: ['2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', 'head', 'truffleruby']
13-
rabl-gem: ['rabl', 'rabl-rails']
1412
include:
15-
- ruby-version: head
13+
# Ruby 2.3 - Rails 3.2-5.2 ( rabl-rails supports Rails 4.2+)
14+
- ruby-version: '2.3'
15+
rails-version: '3.2'
16+
rabl-gem: 'rabl'
17+
- ruby-version: '2.3'
18+
rails-version: '4.2'
19+
rabl-gem: 'rabl'
20+
- ruby-version: '2.3'
21+
rails-version: '4.2'
22+
rabl-gem: 'rabl-rails'
23+
continue-on-error: true
24+
- ruby-version: '2.3'
25+
rails-version: '5.2'
26+
rabl-gem: 'rabl'
27+
- ruby-version: '2.3'
28+
rails-version: '5.2'
29+
rabl-gem: 'rabl-rails'
30+
continue-on-error: true
31+
32+
# Ruby 2.4 - Rails 3.x-5.2
33+
- ruby-version: '2.4'
34+
rails-version: '4.2'
35+
rabl-gem: 'rabl'
36+
- ruby-version: '2.4'
37+
rails-version: '4.2'
38+
rabl-gem: 'rabl-rails'
39+
continue-on-error: true
40+
- ruby-version: '2.4'
41+
rails-version: '5.2'
42+
rabl-gem: 'rabl'
43+
- ruby-version: '2.4'
44+
rails-version: '5.2'
45+
rabl-gem: 'rabl-rails'
46+
continue-on-error: true
47+
# Ruby 2.5 - Rails 5.2-6.1
48+
- ruby-version: '2.5'
49+
rails-version: '5.2'
50+
rabl-gem: 'rabl'
51+
- ruby-version: '2.5'
52+
rails-version: '5.2'
53+
rabl-gem: 'rabl-rails'
54+
continue-on-error: true
55+
- ruby-version: '2.5'
56+
rails-version: '6.0'
57+
rabl-gem: 'rabl'
58+
- ruby-version: '2.5'
59+
rails-version: '6.0'
60+
rabl-gem: 'rabl-rails'
61+
continue-on-error: true
62+
- ruby-version: '2.5'
63+
rails-version: '6.1'
64+
rabl-gem: 'rabl'
65+
- ruby-version: '2.5'
66+
rails-version: '6.1'
67+
rabl-gem: 'rabl-rails'
68+
continue-on-error: true
69+
70+
# Ruby 2.6 - Rails 5.2-6.1
71+
- ruby-version: '2.6'
72+
rails-version: '5.2'
73+
rabl-gem: 'rabl'
74+
- ruby-version: '2.6'
75+
rails-version: '5.2'
76+
rabl-gem: 'rabl-rails'
77+
continue-on-error: true
78+
- ruby-version: '2.6'
79+
rails-version: '6.0'
80+
rabl-gem: 'rabl'
81+
- ruby-version: '2.6'
82+
rails-version: '6.0'
83+
rabl-gem: 'rabl-rails'
84+
continue-on-error: true
85+
- ruby-version: '2.6'
86+
rails-version: '6.1'
87+
rabl-gem: 'rabl'
88+
- ruby-version: '2.6'
89+
rails-version: '6.1'
90+
rabl-gem: 'rabl-rails'
91+
continue-on-error: true
92+
93+
# Ruby 2.7 - Rails 6.0-7.0
94+
- ruby-version: '2.7'
95+
rails-version: '6.0'
96+
rabl-gem: 'rabl'
97+
- ruby-version: '2.7'
98+
rails-version: '6.0'
99+
rabl-gem: 'rabl-rails'
100+
continue-on-error: true
101+
- ruby-version: '2.7'
102+
rails-version: '6.1'
103+
rabl-gem: 'rabl'
104+
- ruby-version: '2.7'
105+
rails-version: '6.1'
106+
rabl-gem: 'rabl-rails'
107+
continue-on-error: true
108+
- ruby-version: '2.7'
109+
rails-version: '7.0'
110+
rabl-gem: 'rabl'
111+
- ruby-version: '2.7'
112+
rails-version: '7.0'
113+
rabl-gem: 'rabl-rails'
114+
continue-on-error: true
115+
116+
# Ruby 3.0 - Rails 6.1-7.1
117+
- ruby-version: '3.0'
118+
rails-version: '6.1'
119+
rabl-gem: 'rabl'
120+
- ruby-version: '3.0'
121+
rails-version: '6.1'
122+
rabl-gem: 'rabl-rails'
123+
continue-on-error: true
124+
- ruby-version: '3.0'
125+
rails-version: '7.0'
126+
rabl-gem: 'rabl'
127+
- ruby-version: '3.0'
128+
rails-version: '7.0'
129+
rabl-gem: 'rabl-rails'
130+
continue-on-error: true
131+
- ruby-version: '3.0'
132+
rails-version: '7.1'
133+
rabl-gem: 'rabl'
134+
- ruby-version: '3.0'
135+
rails-version: '7.1'
136+
rabl-gem: 'rabl-rails'
137+
continue-on-error: true
138+
139+
# Ruby 3.1 - Rails 6.1-7.1
140+
- ruby-version: '3.1'
141+
rails-version: '6.1'
142+
rabl-gem: 'rabl'
143+
- ruby-version: '3.1'
144+
rails-version: '6.1'
145+
rabl-gem: 'rabl-rails'
146+
continue-on-error: true
147+
- ruby-version: '3.1'
148+
rails-version: '7.0'
149+
rabl-gem: 'rabl'
150+
- ruby-version: '3.1'
151+
rails-version: '7.0'
152+
rabl-gem: 'rabl-rails'
153+
continue-on-error: true
154+
- ruby-version: '3.1'
155+
rails-version: '7.1'
156+
rabl-gem: 'rabl'
157+
- ruby-version: '3.1'
158+
rails-version: '7.1'
159+
rabl-gem: 'rabl-rails'
160+
continue-on-error: true
161+
162+
# Ruby 3.2 - Rails 7.0-8.1
163+
- ruby-version: '3.2'
164+
rails-version: '7.0'
165+
rabl-gem: 'rabl'
166+
- ruby-version: '3.2'
167+
rails-version: '7.0'
168+
rabl-gem: 'rabl-rails'
169+
continue-on-error: true
170+
- ruby-version: '3.2'
171+
rails-version: '7.1'
172+
rabl-gem: 'rabl'
173+
- ruby-version: '3.2'
174+
rails-version: '7.1'
175+
rabl-gem: 'rabl-rails'
176+
continue-on-error: true
177+
- ruby-version: '3.2'
178+
rails-version: '8.0'
179+
rabl-gem: 'rabl'
180+
- ruby-version: '3.2'
181+
rails-version: '8.0'
182+
rabl-gem: 'rabl-rails'
183+
continue-on-error: true
184+
- ruby-version: '3.2'
185+
rails-version: '8.1'
186+
rabl-gem: 'rabl'
187+
- ruby-version: '3.2'
188+
rails-version: '8.1'
189+
rabl-gem: 'rabl-rails'
190+
continue-on-error: true
191+
192+
# Ruby 3.3 - Rails 7.1-8.1
193+
- ruby-version: '3.3'
194+
rails-version: '7.1'
195+
rabl-gem: 'rabl'
196+
- ruby-version: '3.3'
197+
rails-version: '7.1'
198+
rabl-gem: 'rabl-rails'
199+
continue-on-error: true
200+
- ruby-version: '3.3'
201+
rails-version: '7.2'
202+
rabl-gem: 'rabl'
203+
- ruby-version: '3.3'
204+
rails-version: '7.2'
205+
rabl-gem: 'rabl-rails'
206+
continue-on-error: true
207+
- ruby-version: '3.3'
208+
rails-version: '8.0'
209+
rabl-gem: 'rabl'
210+
- ruby-version: '3.3'
211+
rails-version: '8.0'
212+
rabl-gem: 'rabl-rails'
213+
continue-on-error: true
214+
- ruby-version: '3.3'
215+
rails-version: '8.1'
216+
rabl-gem: 'rabl'
217+
- ruby-version: '3.3'
218+
rails-version: '8.1'
219+
rabl-gem: 'rabl-rails'
220+
continue-on-error: true
221+
222+
# Ruby 3.4 - Rails 7.0-8.1
223+
- ruby-version: '3.4'
224+
rails-version: '7.1'
225+
rabl-gem: 'rabl'
226+
- ruby-version: '3.4'
227+
rails-version: '7.1'
228+
rabl-gem: 'rabl-rails'
229+
continue-on-error: true
230+
- ruby-version: '3.4'
231+
rails-version: '7.2'
232+
rabl-gem: 'rabl'
233+
- ruby-version: '3.4'
234+
rails-version: '7.2'
235+
rabl-gem: 'rabl-rails'
236+
continue-on-error: true
237+
- ruby-version: '3.4'
238+
rails-version: '8.0'
239+
rabl-gem: 'rabl'
240+
- ruby-version: '3.4'
241+
rails-version: '8.0'
242+
rabl-gem: 'rabl-rails'
243+
continue-on-error: true
244+
- ruby-version: '3.4'
245+
rails-version: '8.1'
246+
rabl-gem: 'rabl'
247+
- ruby-version: '3.4'
248+
rails-version: '8.1'
249+
rabl-gem: 'rabl-rails'
250+
continue-on-error: true
251+
252+
# Special Ruby versions
253+
- ruby-version: 'head'
254+
rails-version: '8.1'
255+
rabl-gem: 'rabl'
256+
continue-on-error: true
257+
- ruby-version: 'head'
258+
rails-version: '8.1'
259+
rabl-gem: 'rabl-rails'
260+
continue-on-error: true
261+
- ruby-version: 'truffleruby'
262+
rails-version: '8.1'
263+
rabl-gem: 'rabl'
264+
continue-on-error: true
265+
- ruby-version: 'truffleruby'
266+
rails-version: '8.1'
267+
rabl-gem: 'rabl-rails'
16268
continue-on-error: true
17269

18270
steps:
@@ -21,6 +273,9 @@ jobs:
21273
- name: Set RABL_GEM environment variable
22274
run: echo "RABL_GEM=${{ matrix.rabl-gem }}" >> $GITHUB_ENV
23275

276+
- name: Set RAILS_VERSION environment variable
277+
run: echo "RAILS_VERSION=${{ matrix.rails-version }}" >> $GITHUB_ENV
278+
24279
- name: Set up Ruby ${{ matrix.ruby-version }}
25280
uses: ruby/setup-ruby@v1
26281
with:

Gemfile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ source "https://rubygems.org"
22

33
# Specify your gem's dependencies in gon.gemspec
44
gem ENV['RABL_GEM'] || 'rabl'
5-
gem 'concurrent-ruby', '1.3.4' if RUBY_VERSION < '2.7'
5+
gem 'concurrent-ruby', '< 1.3.5' if ENV['RAILS_VERSION'] && ENV['RAILS_VERSION'].to_f < 7.1
66
gem 'loofah', '2.20.0' if RUBY_VERSION < '2.5'
77

8+
if ENV['RAILS_VERSION']
9+
gem 'railties', "~> #{ENV['RAILS_VERSION']}.0"
10+
gem 'actionpack', "~> #{ENV['RAILS_VERSION']}.0"
11+
end
12+
813
gemspec

gon.gemspec

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ Gem::Specification.new do |s|
2525
s.add_dependency 'i18n', '>= 0.7'
2626
s.add_dependency 'request_store', '>= 1.0'
2727
s.add_dependency 'multi_json'
28-
s.add_development_dependency 'rabl'
29-
s.add_development_dependency 'rabl-rails'
3028
s.add_development_dependency 'rspec', '>= 3.0'
3129
s.add_development_dependency 'jbuilder'
3230
s.add_development_dependency 'railties', '>= 3.0.20'

spec/gon/jbuilder_spec.rb

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,16 @@ def private_controller_method
5353

5454
context 'within Rails' do
5555
before do
56-
module ::Rails
57-
end
58-
5956
allow(Rails).to receive_message_chain("application.routes.url_helpers.instance_methods") { [:user_path] }
6057
controller.instance_variable_set('@user_id', 1)
6158
end
6259

63-
after do
64-
Object.send(:remove_const, :Rails)
65-
end
66-
6760
it 'includes url_helpers' do
6861
expect(controller).to receive(:user_path) { |id| "/users/#{id}" }
6962
Gon.jbuilder :template => 'spec/test_data/sample_url_helpers.json.jbuilder', :controller => controller
7063
expect(Gon.url).to eq '/users/1'
7164
end
7265
end
73-
7466
end
75-
7667
end
77-
7868
end

spec/gon/rabl_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
it 'raise exception if rabl is not included' do
5151
Gon.send :remove_const, 'Rabl'
5252
expect { Gon.rabl :template => 'spec/test_data/sample.rabl', :controller => controller }.to raise_error(NameError)
53-
load 'rabl.rb'
53+
rabl_gem = ENV.fetch('RABL_GEM', 'rabl')
54+
load "#{rabl_gem}.rb"
5455
load 'gon/rabl.rb'
5556
end
5657

spec/gon/thread_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ def value
2121

2222
describe 'threading behaviour' do
2323
it 'is threadsafe' do
24+
skip 'ActionDispatch::TestRequest.create is not supported on Rails versions below 5.0' if Rails::VERSION::STRING < '5.0'
25+
2426
threads = []
2527
10.times do
2628
threads << Thread.new do

spec/spec_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
2-
2+
require 'active_support/all'
33
require 'rails/railtie'
44
require 'rails/version' # jbuilder <= 2.13.0 checks rails version
55
require 'gon'

0 commit comments

Comments
 (0)