Skip to content

CI: run tests in parallel with lint (remove needs: lint)#252

Open
NWelde wants to merge 2 commits into
madeintandem:masterfrom
NWelde:remove-lint-needs-from-tests
Open

CI: run tests in parallel with lint (remove needs: lint)#252
NWelde wants to merge 2 commits into
madeintandem:masterfrom
NWelde:remove-lint-needs-from-tests

Conversation

@NWelde

@NWelde NWelde commented May 31, 2026

Copy link
Copy Markdown

Summary

The tests job declares needs: lint, which makes the entire test matrix
wait for RuboCop and — more importantly — be skipped entirely whenever
RuboCop reports any offense
. Since each test job does its own checkout, gem
install, and Postgres service, it doesn't consume anything lint produces. This
PR removes the dependency so lint and tests report independently.

Why this matters (verified on real infra)

I forked this repo and ran ci.yml both ways. With a single redundant
# rubocop:disable directive present (the kind of nit that lands in PRs):

  • With needs: lint → lint fails, 0 / 186 test jobs run (run)
  • Without it → lint still fails, but 185 / 186 test jobs run and pass (run)

So today, any RuboCop offense silently hides the entire test suite — a
contributor learns their formatting is off but nothing about whether their code
works.

On a clean, fully-green pipeline (lint nit fixed on both sides, representative
subset, only this line differing), removing the edge is also faster — tests start
immediately instead of waiting for lint:

Result Tests start Wall-clock
needs: lint ✅ 7/7 18s 89s (run)
without ✅ 7/7 3s 77s (run)

Safety

lint still runs on every push/PR and still reports pass/fail — it just no longer
blocks or hides the tests. The change is one line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant