Skip to content

Commit bbcbf02

Browse files
yahondaclaude
andcommitted
Add Rails 5.0-8.0 gemfile matrix running minimum required CRuby
Add gemfiles for ActiveRecord 7.1, 7.2, and 8.0, and a new test_gemfiles workflow that runs the spec suite once per gemfile against the minimum CRuby version each Rails release supports. This gives the repo per-Rails CI coverage that previously only existed in the Travis config. Existing gemfiles are updated to drop beta/rc adapter pins and to use the :windows platform alias. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 502f37c commit bbcbf02

11 files changed

Lines changed: 168 additions & 12 deletions
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
name: test_gemfiles
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
build:
13+
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
include:
19+
- gemfile: gemfiles/Gemfile.activerecord-5.0
20+
ruby: '2.4'
21+
- gemfile: gemfiles/Gemfile.activerecord-5.1
22+
ruby: '2.4'
23+
- gemfile: gemfiles/Gemfile.activerecord-5.2
24+
ruby: '2.4'
25+
- gemfile: gemfiles/Gemfile.activerecord-6.0
26+
ruby: '2.5'
27+
- gemfile: gemfiles/Gemfile.activerecord-6.1
28+
ruby: '2.5'
29+
- gemfile: gemfiles/Gemfile.activerecord-7.0
30+
ruby: '2.7'
31+
- gemfile: gemfiles/Gemfile.activerecord-7.1
32+
ruby: '2.7'
33+
- gemfile: gemfiles/Gemfile.activerecord-7.2
34+
ruby: '3.1'
35+
- gemfile: gemfiles/Gemfile.activerecord-8.0
36+
ruby: '3.2'
37+
env:
38+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
39+
ORACLE_HOME: /opt/oracle/instantclient_23_26
40+
LD_LIBRARY_PATH: /opt/oracle/instantclient_23_26
41+
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
42+
TNS_ADMIN: ./ci/network/admin
43+
DATABASE_NAME: FREEPDB1
44+
TZ: Europe/Riga
45+
DATABASE_SYS_PASSWORD: Oracle18
46+
DATABASE_VERSION: 23.26.1.0
47+
48+
services:
49+
oracle:
50+
image: gvenzl/oracle-free:latest
51+
ports:
52+
- 1521:1521
53+
env:
54+
TZ: Europe/Riga
55+
ORACLE_PASSWORD: Oracle18
56+
options: >-
57+
--health-cmd healthcheck.sh
58+
--health-interval 10s
59+
--health-timeout 5s
60+
--health-retries 10
61+
62+
steps:
63+
- uses: actions/checkout@v6
64+
- name: Set up Ruby
65+
uses: ruby/setup-ruby@v1
66+
with:
67+
ruby-version: ${{ matrix.ruby }}
68+
- name: Create symbolic link for libaio library compatibility
69+
run: |
70+
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
71+
- name: Download Oracle instant client
72+
run: |
73+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-basic-linux.x64-23.26.1.0.0.zip
74+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sdk-linux.x64-23.26.1.0.0.zip
75+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sqlplus-linux.x64-23.26.1.0.0.zip
76+
- name: Install Oracle instant client
77+
run: |
78+
sudo unzip -q instantclient-basic-linux.x64-23.26.1.0.0.zip -d /opt/oracle/
79+
sudo unzip -qo instantclient-sdk-linux.x64-23.26.1.0.0.zip -d /opt/oracle/
80+
sudo unzip -qo instantclient-sqlplus-linux.x64-23.26.1.0.0.zip -d /opt/oracle/
81+
echo "/opt/oracle/instantclient_23_26" >> $GITHUB_PATH
82+
- name: Install JDBC Driver
83+
run: |
84+
wget -q https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc11.jar -O ./lib/ojdbc11.jar
85+
- name: Create database user
86+
run: |
87+
./ci/setup_accounts.sh
88+
- name: Bundle install
89+
run: |
90+
bundle install --jobs 4 --retry 3
91+
- name: Run RSpec
92+
run: |
93+
RUBYOPT=-w bundle exec rspec

gemfiles/Gemfile.activerecord-5.0

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ group :test, :development do
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-5.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ group :test, :development do
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-5.2

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ group :test, :development do
1010
gem 'rspec', '~> 3.1'
1111

1212
unless ENV['NO_ACTIVERECORD']
13-
gem 'activerecord', '~> 5.2.0.beta'
14-
gem 'activerecord-oracle_enhanced-adapter', '~> 5.2.0.beta'
13+
gem 'activerecord', '~> 5.2.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 5.2.0'
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-6.0

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ group :test, :development do
1010
gem 'rspec', '~> 3.1'
1111

1212
unless ENV['NO_ACTIVERECORD']
13-
gem 'activerecord', '~> 6.0.0.rc1'
14-
gem 'activerecord-oracle_enhanced-adapter', '~>6.0.0.rc1'
13+
gem 'activerecord', '~> 6.0.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0'
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-6.1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ group :test, :development do
1111

1212
unless ENV['NO_ACTIVERECORD']
1313
gem 'activerecord', '~> 6.1.0'
14-
gem 'activerecord-oracle_enhanced-adapter', '~>6.1.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 6.1.0'
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-7.0

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ group :test, :development do
1515
gem 'simplecov', '>= 0'
1616
end
1717

18-
platforms :ruby, :mswin, :mingw do
18+
platforms :ruby, :windows do
1919
gem 'ruby-oci8', '~> 2.1'
2020
end
2121
end

gemfiles/Gemfile.activerecord-7.1

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
source 'http://rubygems.org'
2+
3+
group :development do
4+
gem 'juwelier', '~> 2.0'
5+
gem 'rspec_junit_formatter'
6+
end
7+
8+
group :test, :development do
9+
gem 'rake', '>= 10.0'
10+
gem 'rspec', '~> 3.1'
11+
12+
unless ENV['NO_ACTIVERECORD']
13+
gem 'activerecord', '~> 7.1.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 7.1.0'
15+
gem 'simplecov', '>= 0'
16+
end
17+
18+
platforms :ruby, :windows do
19+
gem 'ruby-oci8', '~> 2.1'
20+
end
21+
end

gemfiles/Gemfile.activerecord-7.2

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
source 'http://rubygems.org'
2+
3+
group :development do
4+
gem 'juwelier', '~> 2.0'
5+
gem 'rspec_junit_formatter'
6+
end
7+
8+
group :test, :development do
9+
gem 'rake', '>= 10.0'
10+
gem 'rspec', '~> 3.1'
11+
12+
unless ENV['NO_ACTIVERECORD']
13+
gem 'activerecord', '~> 7.2.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 7.2.0'
15+
gem 'simplecov', '>= 0'
16+
end
17+
18+
platforms :ruby, :windows do
19+
gem 'ruby-oci8', '~> 2.1'
20+
end
21+
end

gemfiles/Gemfile.activerecord-8.0

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
source 'http://rubygems.org'
2+
3+
group :development do
4+
gem 'juwelier', '~> 2.0'
5+
gem 'rspec_junit_formatter'
6+
end
7+
8+
group :test, :development do
9+
gem 'rake', '>= 10.0'
10+
gem 'rspec', '~> 3.1'
11+
12+
unless ENV['NO_ACTIVERECORD']
13+
gem 'activerecord', '~> 8.0.0'
14+
gem 'activerecord-oracle_enhanced-adapter', '~> 8.0.0'
15+
gem 'simplecov', '>= 0'
16+
end
17+
18+
platforms :ruby, :windows do
19+
gem 'ruby-oci8', '~> 2.1'
20+
end
21+
end

0 commit comments

Comments
 (0)