Skip to content

Commit 7f84db3

Browse files
authored
Merge pull request #458 from Shopify/refactor-ci-gemfiles
2 parents 4b310bd + 7222306 commit 7f84db3

File tree

9 files changed

+47
-62
lines changed

9 files changed

+47
-62
lines changed

.github/workflows/ci.yml

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ on: [push, pull_request]
55
jobs:
66
build:
77
runs-on: ubuntu-latest
8-
name: Ruby ${{ matrix.ruby }} | Gemfile ${{ matrix.gemfile }}
9-
continue-on-error: ${{ matrix.gemfile == 'rails_edge' }}
8+
name: Ruby ${{ matrix.ruby }} | Rails ${{ matrix.rails }} | Gemfile ${{ matrix.gemfile }}
9+
continue-on-error: ${{ matrix.rails == 'edge' }}
1010
services:
1111
redis:
1212
image: redis
@@ -15,46 +15,49 @@ jobs:
1515
strategy:
1616
matrix:
1717
ruby: ["2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
18-
gemfile: [rails_5_2, rails_6_0, rails_6_1, rails_7_0, rails_7_1, rails_edge]
18+
rails: ["5.2", "6.0", "6.1", "7.0", "7.1", "edge"]
19+
gemfile: [rails_gems]
1920
exclude:
2021
- ruby: "2.6"
21-
gemfile: rails_7_0
22+
rails: "7.0"
2223
- ruby: "2.6"
23-
gemfile: rails_7_1
24+
rails: "7.1"
2425
- ruby: "2.6"
25-
gemfile: rails_edge
26+
rails: "edge"
2627
- ruby: "2.7"
27-
gemfile: rails_7_1
28+
rails: "7.1"
2829
- ruby: "2.7"
29-
gemfile: rails_edge
30+
rails: "edge"
3031
- ruby: "3.0"
31-
gemfile: rails_5_2
32+
rails: "5.2"
3233
- ruby: "3.0"
33-
gemfile: rails_7_1
34+
rails: "7.1"
3435
- ruby: "3.0"
35-
gemfile: rails_edge
36+
rails: "edge"
3637
- ruby: "3.1"
37-
gemfile: rails_5_2
38+
rails: "5.2"
3839
- ruby: "3.1"
39-
gemfile: rails_6_0
40+
rails: "6.0"
4041
- ruby: "3.2"
41-
gemfile: rails_5_2
42+
rails: "5.2"
4243
- ruby: "3.2"
43-
gemfile: rails_6_0
44+
rails: "6.0"
4445
- ruby: "3.2"
45-
gemfile: rails_6_1
46+
rails: "6.1"
4647
- ruby: "3.3"
47-
gemfile: rails_5_2
48+
rails: "5.2"
4849
- ruby: "3.3"
49-
gemfile: rails_6_0
50+
rails: "6.0"
5051
- ruby: "3.3"
51-
gemfile: rails_6_1
52+
rails: "6.1"
5253

5354
include:
5455
- ruby: head
55-
gemfile: rails_edge
56+
rails: "edge"
57+
gemfile: rails_gems
5658
env:
5759
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
60+
RAILS_VERSION: ${{ matrix.rails }}
5861
steps:
5962
- name: Check out code
6063
uses: actions/checkout@v4

.rubocop.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
inherit_gem:
22
rubocop-shopify: rubocop.yml
33

4+
inherit_mode:
5+
merge:
6+
- Include
7+
48
AllCops:
59
TargetRubyVersion: 2.6
6-
Exclude:
7-
- "vendor/bundle/**/*"
10+
Include:
11+
- '**/*.gemfile'
812
Lint/SuppressedException:
913
Exclude:
1014
- lib/job-iteration.rb
@@ -14,7 +18,3 @@ Style/GlobalVars:
1418
Naming/FileName:
1519
Exclude:
1620
- lib/job-iteration.rb
17-
Style/MethodCallWithArgsParentheses:
18-
Exclude:
19-
- "gemfiles/*"
20-
- Gemfile

gemfiles/rails_5_2.gemfile

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

gemfiles/rails_6_0.gemfile

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

gemfiles/rails_6_1.gemfile

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

gemfiles/rails_7_0.gemfile

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

gemfiles/rails_7_1.gemfile

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

gemfiles/rails_edge.gemfile

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

gemfiles/rails_gems.gemfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
rails_version = ENV.fetch("RAILS_VERSION")
4+
@rails_gems_requirements = case rails_version
5+
when "edge" then { github: "rails/rails", branch: "main" }
6+
when /\A\d+\.\d+\z/ then "~> #{rails_version}.0"
7+
else raise "Unsupported RAILS_VERSION: #{rails_version}"
8+
end
9+
10+
eval_gemfile "../Gemfile"
11+
12+
# https://github.com/rails/rails/pull/44083
13+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.1") &&
14+
rails_version != "edge" && Gem::Version.new(rails_version) < Gem::Version.new("7")
15+
gem "net-imap", require: false
16+
gem "net-pop", require: false
17+
gem "net-smtp", require: false
18+
end

0 commit comments

Comments
 (0)