Skip to content

Commit 3871793

Browse files
ledermannclaude
andcommitted
chore(ci): give each test suite a job of its own
The lint job also ran the Vitest suite, and the job names mixed two rules. Some named the subject, others named the tool. Vitest moves into the js-tests job. It needs no Ruby and no Vite build, so a checkout and the Bun packages are enough. The lint job now holds static analysis only. bats, rspec and rspec-integration become shell-tests, ruby-tests and integration-tests. A name that holds no tool also survives a change of the runner. The status names change with this. Branch protection needs the new names if it lists single jobs instead of ci-success. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 94898a1 commit 3871793

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,6 @@ jobs:
5151
- name: Check for TypeScript errors
5252
run: bun run tsc
5353

54-
- name: Run JavaScript Tests
55-
run: bun run test
56-
5754
- name: Check JS size limit
5855
run: |
5956
bunx vite build
@@ -62,7 +59,25 @@ jobs:
6259
- name: Shellcheck shell scripts
6360
run: shellcheck $(git ls-files '*.sh')
6461

65-
bats:
62+
js-tests:
63+
runs-on: ubuntu-24.04
64+
timeout-minutes: 5
65+
66+
steps:
67+
- uses: actions/checkout@v7
68+
69+
- name: Setup Bun
70+
uses: oven-sh/setup-bun@v2
71+
with:
72+
bun-version-file: package.json
73+
74+
- name: Install Bun packages
75+
run: bun install --frozen-lockfile
76+
77+
- name: Run JavaScript tests
78+
run: bun run test
79+
80+
shell-tests:
6681
runs-on: ubuntu-24.04
6782
timeout-minutes: 3
6883

@@ -80,7 +95,7 @@ jobs:
8095
- name: Run bats tests
8196
run: bats --recursive spec/bats/
8297

83-
rspec:
98+
ruby-tests:
8499
runs-on: ubuntu-24.04
85100
timeout-minutes: 10
86101

@@ -156,7 +171,7 @@ jobs:
156171
path: tmp/capybara/
157172
if-no-files-found: ignore
158173

159-
rspec-integration:
174+
integration-tests:
160175
runs-on: ubuntu-24.04
161176
timeout-minutes: 15
162177

@@ -185,7 +200,7 @@ jobs:
185200
# no lock, which the serial runner cannot do. It also creates the
186201
# database of every worker, so no separate setup step is needed.
187202
# NO_COVERAGE skips the instrumentation: this job never reports
188-
# coverage, the `rspec` job above does.
203+
# coverage, the `ruby-tests` job above does.
189204
- name: Run integration tests
190205
run: NO_COVERAGE=1 bin/turbo_tests -t integration spec/integration
191206

@@ -271,7 +286,7 @@ jobs:
271286
runs-on: ubuntu-24.04
272287
timeout-minutes: 5
273288

274-
needs: [lint, bats, rspec, rspec-integration, build]
289+
needs: [lint, js-tests, shell-tests, ruby-tests, integration-tests, build]
275290
if: always()
276291

277292
steps:

0 commit comments

Comments
 (0)