Skip to content

Commit e6c68ac

Browse files
authored
Merge pull request #50 from rspec/modernisation
Setup github actions
2 parents afb4ed5 + bdd94c7 commit e6c68ac

File tree

6 files changed

+209
-197
lines changed

6 files changed

+209
-197
lines changed

.github/workflows/ci.yml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
name: RSpec CI
2+
on:
3+
push:
4+
branches:
5+
- 'main'
6+
- '*-maintenance'
7+
- '*-dev'
8+
- 'pr-*'
9+
pull_request:
10+
branches:
11+
- '*'
12+
permissions:
13+
contents: read
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.github.head_ref || github.run_id }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
test:
20+
name: 'Ruby: ${{ matrix.ruby }}, Rails: ${{ matrix.env.RAILS_VERSION }}'
21+
runs-on: ubuntu-20.04
22+
strategy:
23+
fail-fast: false
24+
matrix:
25+
include:
26+
# Rails 6.1 builds >= 2.5
27+
- ruby: 3.1
28+
env:
29+
RAILS_VERSION: '~> 6.1.0'
30+
- ruby: '3.0'
31+
env:
32+
RAILS_VERSION: '~> 6.1.0'
33+
- ruby: 2.7
34+
env:
35+
RAILS_VERSION: '~> 6.1.0'
36+
- ruby: 2.6
37+
env:
38+
RAILS_VERSION: '~> 6.1.0'
39+
- ruby: 2.5
40+
env:
41+
RAILS_VERSION: '~> 6.1.0'
42+
43+
# Rails 6.0 builds >= 2.4.10, < 3.0
44+
- ruby: 2.7
45+
env:
46+
RAILS_VERSION: '~> 6.0.0'
47+
- ruby: 2.6
48+
env:
49+
RAILS_VERSION: '~> 6.0.0'
50+
- ruby: 2.5
51+
env:
52+
RAILS_VERSION: '~> 6.0.0'
53+
54+
# Rails 5.2 builds >= 2.2.2, <= 2.7
55+
- ruby: 2.7
56+
env:
57+
RAILS_VERSION: '~> 5.2.0'
58+
- ruby: 2.6
59+
env:
60+
RAILS_VERSION: '~> 5.2.0'
61+
- ruby: 2.5
62+
env:
63+
RAILS_VERSION: '~> 5.2.0'
64+
- ruby: 2.4
65+
env:
66+
RAILS_VERSION: '~> 5.2.0'
67+
- ruby: 2.3
68+
env:
69+
RAILS_VERSION: '~> 5.2.0'
70+
- ruby: 2.2
71+
env:
72+
RAILS_VERSION: '~> 5.2.0'
73+
74+
# Rails 5.1 Builds >= 2.2.2
75+
- ruby: 2.7
76+
env:
77+
RAILS_VERSION: '~> 5.1.0'
78+
- ruby: 2.6
79+
env:
80+
RAILS_VERSION: '~> 5.1.0'
81+
- ruby: 2.5
82+
env:
83+
RAILS_VERSION: '~> 5.1.0'
84+
- ruby: 2.4
85+
env:
86+
RAILS_VERSION: '~> 5.1.0'
87+
- ruby: 2.3
88+
env:
89+
RAILS_VERSION: '~> 5.1.0'
90+
- ruby: 2.2
91+
env:
92+
RAILS_VERSION: '~> 5.1.0'
93+
94+
# Rails 5.0 Builds >= 2.2.2
95+
- ruby: 2.7
96+
env:
97+
RAILS_VERSION: '~> 5.0.0'
98+
- ruby: 2.6
99+
env:
100+
RAILS_VERSION: '~> 5.0.0'
101+
- ruby: 2.5
102+
env:
103+
RAILS_VERSION: '~> 5.0.0'
104+
- ruby: 2.4
105+
env:
106+
RAILS_VERSION: '~> 5.0.0'
107+
- ruby: 2.3
108+
env:
109+
RAILS_VERSION: '~> 5.0.0'
110+
- ruby: 2.2
111+
env:
112+
RAILS_VERSION: '~> 5.0.0'
113+
114+
# Rails 4.2 Builds >= 1.9.3
115+
- ruby: 2.4
116+
env:
117+
RAILS_VERSION: '~> 4.2.0'
118+
- ruby: 2.3
119+
env:
120+
RAILS_VERSION: '~> 4.2.0'
121+
- ruby: 2.2
122+
env:
123+
RAILS_VERSION: '~> 4.2.0'
124+
125+
# Rails 4.1 Builds >= 1.9.3, < 2.4
126+
- ruby: 2.3
127+
env:
128+
RAILS_VERSION: '~> 4.1.0'
129+
- ruby: 2.2
130+
env:
131+
RAILS_VERSION: '~> 4.1.0'
132+
133+
# Rails 4.0 Builds >= 1.8.11, < 2.4
134+
- ruby: 2.3
135+
env:
136+
RAILS_VERSION: '~> 4.0.4'
137+
- ruby: 2.2
138+
env:
139+
RAILS_VERSION: '~> 4.0.4'
140+
141+
# Rails 3.2 Builds < 2.4
142+
- ruby: 2.3
143+
env:
144+
RAILS_VERSION: '~> 3.2.17'
145+
- ruby: 2.2
146+
env:
147+
RAILS_VERSION: '~> 3.2.17'
148+
149+
env: ${{ matrix.env }}
150+
steps:
151+
- uses: actions/checkout@v3
152+
- uses: ruby/setup-ruby@v1
153+
with:
154+
ruby-version: ${{ matrix.ruby }}
155+
- run: script/update_rubygems_and_install_bundler
156+
- run: bundle install --binstubs
157+
- run: script/run_build
158+
continue-on-error: ${{ matrix.allow_failure || false }}
159+

.travis.yml

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

Gemfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ gemspec
77
if File.exist?(library_path) && !ENV['USE_GIT_REPOS']
88
gem lib, :path => library_path
99
else
10-
gem lib, :git => "git://github.com/rspec/#{lib}.git"
10+
gem lib, :git => "https://github.com/rspec/#{lib}.git"
1111
end
1212
end
1313

@@ -51,12 +51,16 @@ else
5151
end
5252
end
5353

54-
if RUBY_VERSION < '2.0.0' && !!(RbConfig::CONFIG['host_os'] =~ /cygwin|mswin|mingw|bccwin|wince|emx/)
55-
gem 'ffi', '< 1.9.15' # allow ffi to be installed on older rubies on windows
56-
elsif RUBY_VERSION < '1.9'
54+
if RUBY_VERSION < '2.2.0' && !!(RbConfig::CONFIG['host_os'] =~ /cygwin|mswin|mingw|bccwin|wince|emx/)
55+
gem 'ffi', '< 1.10'
56+
elsif RUBY_VERSION < '2.4.0' && !!(RbConfig::CONFIG['host_os'] =~ /cygwin|mswin|mingw|bccwin|wince|emx/)
57+
gem 'ffi', '< 1.15'
58+
elsif RUBY_VERSION < '2.0'
5759
gem 'ffi', '< 1.9.19' # ffi dropped Ruby 1.8 support in 1.9.19
60+
elsif RUBY_VERSION < '2.3.0'
61+
gem 'ffi', '~> 1.12.0'
5862
else
59-
gem 'ffi', '~> 1.9.25'
63+
gem 'ffi', '~> 1.15.0'
6064
end
6165

6266
gem "i18n", '< 0.7.0' if RUBY_VERSION < '1.9.3'

lib/rspec/active_model/mocks/mocks.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,11 @@ def stub_model(model_class, stubs={})
256256

257257
stubs.each do |message, return_value|
258258
if m.respond_to?("#{message}=")
259-
m.__send__("#{message}=", return_value)
259+
begin
260+
m.__send__("#{message}=", return_value)
261+
rescue ActiveModel::MissingAttributeError
262+
RSpec::Mocks.allow_message(m, message).and_return(return_value)
263+
end
260264
else
261265
RSpec::Mocks.allow_message(m, message).and_return(return_value)
262266
end

0 commit comments

Comments
 (0)