Skip to content

Commit b79e072

Browse files
committed
CI: Split matrix between rspec and minitest
The codebase's CI executions for Minitest support have proven to be fairly stable and predictable. Meanwhile the RSpec test harness is flaky. This commit splits out the test commands into separate CI matrix entries to better understand the execution characteristics.
1 parent 51c1f0a commit b79e072

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

.github/workflows/ci.yml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ jobs:
88
strategy:
99
fail-fast: false
1010
matrix:
11+
test:
12+
- "bin/rails test:all"
13+
- "bundle exec rspec"
1114
driver:
1215
- "cuprite"
1316
- "playwright"
@@ -26,7 +29,7 @@ jobs:
2629
DRIVER: ${{ matrix.driver }}
2730
RAILS_VERSION: ${{ matrix.rails-version }}
2831

29-
name: ${{ format('Tests (Ruby {0}, Rails {1}, {2})', matrix.ruby-version, matrix.rails-version, matrix.driver) }}
32+
name: ${{ format('Tests (Ruby {0}, Rails {1}, {2}, Driver {3})', matrix.ruby-version, matrix.rails-version, matrix.test, matrix.driver) }}
3033
runs-on: "ubuntu-latest"
3134

3235
steps:
@@ -45,6 +48,12 @@ jobs:
4548
run: yarn install && yarn playwright install
4649

4750
- run: bin/rails standard
48-
if: matrix.ruby-version != 3.2
49-
- run: bin/rails test:all
50-
- run: bundle exec rspec
51+
- run: ${{ matrix.test }}
52+
53+
- name: Keep screenshots from failed system tests
54+
uses: actions/upload-artifact@v6
55+
if: failure()
56+
with:
57+
name: screenshots
58+
path: ${{ github.workspace }}/tmp/screenshots
59+
if-no-files-found: ignore

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ end
1717

1818
gem "rails", rails_constraint
1919
gem "rspec-rails"
20+
gem "minitest", "< 6"
2021

2122
gem "puma"
2223
gem "standard", "~> 1.12"

0 commit comments

Comments
 (0)