Setup CI and other integrations
You can - and should - setup your CI pipeline to run Oxlint and fail the build on lint errors.
This page also covers other integrations you may want to include, like git pre-commit hooks.
CI
These instructions assume you have already set up Oxlint in your project by adding oxlint to your devDependencies in your package.json, and already have an oxlint configuration file in the repo.
GitHub Actions
First, add a lint script to your package.json if you don't have one already:
json
{
"scripts": {
"lint": "oxlint"
}
}
``````yaml [.github/workflows/oxlint.yml]
name: Lint
on:
pull_request:
push:
branches: [main]
permissions: {}
jobs:
oxlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
# alternatively use npm install / yarn install here
- run: pnpm install --frozen-lockfile
- run: pnpm run lint
``````json [package.json]
{
"scripts": {
"lint:github": "oxlint --format=github"
}
}
``````json [package.json]
{
"scripts": {
"lint:gitlab": "oxlint --format=gitlab > gitlab-oxlint-report.json"
}
}
``````yml [.gitlab-ci.yml]
oxlint:
image: node:lts
stage: test
before_script:
# alternatively use pnpm install / yarn install here
- npm install
script:
- npm run lint:gitlab
artifacts:
reports:
codequality:
# This is relative to your repository root, so adjust if your repo has a different structure or you put the report in a different location
- gitlab-oxlint-report.json
``````json [package.json]
{
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": "pnpm run lint"
}
}
``````yaml [.pre-commit-config.yaml]
repos:
- repo: https://github.com/oxc-project/mirrors-oxlint
rev: v0.0.0
hooks:
- id: oxlint
verbose: true