ci(lint): install dependencies before running oxlint#32555
Conversation
#32522 pinned oxlint as a devDependency and changed the lint script from 'bunx oxlint' to 'oxlint', but the Lint workflow never ran 'bun install', so the binary was not on PATH and the job failed with 'oxlint: command not found' on every PR. Add a 'Setup Dependencies' step mirroring format.yml / clippy.yml.
|
Updated 2:56 AM PT - Jun 21st, 2026
❌ @robobun, your commit 9538c1d has 1 failures in
🧪 To try this PR locally: bunx bun-pr 32555That installs a local version of the PR into your bun-32555 --bun |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughA new "Setup Dependencies" step running ChangesLint Workflow Dependency Install
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
LGTM — straightforward CI fix matching the existing pattern in other workflows.
Extended reasoning...
Overview
This PR adds a single Setup Dependencies step to .github/workflows/lint.yml that runs bun install --frozen-lockfile before the Lint step. The lint script in package.json invokes bare oxlint (not bunx oxlint), so the devDependency binary must be installed into node_modules/.bin for it to be on PATH. Without this step, the workflow fails with oxlint: command not found (exit 127), as described.
Security risks
None. The added command is bun install --frozen-lockfile, which is already run identically in clippy.yml and miri.yml in this repo. It uses --frozen-lockfile, so it cannot mutate the lockfile or pull unpinned versions. There is no new external input, no secrets, no permission changes, and no change to what the workflow runs against.
Level of scrutiny
Low. This is a 3-line, mechanical CI infrastructure fix that copies an established pattern verbatim from sibling workflows. It does not touch product code, tests, or build outputs — it only unbreaks a lint job that currently fails before doing any linting at all.
Other factors
I verified that package.json's lint script is indeed oxlint --config=oxlint.json --format=github src/js (bare binary), confirming the root cause and the fix. The step name and structure mirror the existing Setup Dependencies steps elsewhere in .github/workflows/. No bugs were flagged by the bug-hunting system, and there are no outstanding reviewer comments.
#32555 landed the same `bun install` fix on main. Revert this branch's lint.yml to match so the two do not diverge or conflict at merge time.
The Lint workflow has been failing on every PR with:
#32522 pinned
oxlintas a devDependency and changed thelintscript frombunx oxlintto bareoxlint, butlint.ymlnever ranbun install, so the binary was never on PATH.This adds a
Setup Dependenciesstep (matchingformat.yml/clippy.yml) that runsbun install --frozen-lockfilebefore linting.Verified locally: