Skip to content

Commit 8baaa35

Browse files
hsbtclaude
andcommitted
Split macOS Intel bundler tests across four tag-group runners
A single macos-15-intel runner took around 40 minutes. Reuse the Windows tag groups to fan the run out to four runners, keeping each under roughly ten minutes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 929c5a8 commit 8baaa35

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

.github/workflows/bundler.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,12 @@ jobs:
4040
- { os: { name: macOS, value: macos-26 }, ruby: { name: ruby-3.4, value: 3.4.9 }, timeout: 90 }
4141
- { os: { name: macOS, value: macos-26 }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90 }
4242

43-
# Regression coverage for the Intel architecture with the latest Ruby only
44-
- { os: { name: macOS-intel, value: macos-15-intel }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90 }
43+
# Regression coverage for the Intel architecture with the latest Ruby only.
44+
# Split across runners using the Windows tag groups to keep each run reasonable.
45+
- { os: { name: macOS-intel, value: macos-15-intel }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90, group: a }
46+
- { os: { name: macOS-intel, value: macos-15-intel }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90, group: b }
47+
- { os: { name: macOS-intel, value: macos-15-intel }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90, group: c }
48+
- { os: { name: macOS-intel, value: macos-15-intel }, ruby: { name: ruby-4.0, value: 4.0.5 }, timeout: 90, group: d }
4549

4650
# Ruby 3.2 is about 20 minutes slower than 3.3/3.4, so it will be excluded from testing.
4751
- { os: { name: Windows, value: windows-2025 }, ruby: { name: ruby-3.3, value: 3.3.11 }, timeout: 150, group: a }
@@ -129,11 +133,15 @@ jobs:
129133
- name: Run Test (CRuby)
130134
run: |
131135
bin/parallel_rspec
132-
if: matrix.ruby.name != 'jruby' && matrix.ruby.name != 'truffleruby' && matrix.os.name != 'Windows'
136+
if: matrix.ruby.name != 'jruby' && matrix.ruby.name != 'truffleruby' && matrix.os.name != 'Windows' && matrix.os.name != 'macOS-intel'
133137
- name: Run Test (CRuby on Windows - Group ${{ matrix.group }})
134138
run: |
135139
bin/parallel_rspec --tag windows_${{ matrix.group }}
136140
if: matrix.ruby.name != 'jruby' && matrix.ruby.name != 'truffleruby' && matrix.os.name == 'Windows'
141+
- name: Run Test (CRuby on macOS Intel - Group ${{ matrix.group }})
142+
run: |
143+
bin/parallel_rspec --tag windows_${{ matrix.group }}
144+
if: matrix.ruby.name != 'jruby' && matrix.ruby.name != 'truffleruby' && matrix.os.name == 'macOS-intel'
137145
- name: Run Test (JRuby)
138146
run: |
139147
bin/parallel_rspec --tag jruby_only --tag jruby

0 commit comments

Comments
 (0)