CI e integrações
Faça sua pipeline rodar o Oxfmt e falhar quando houver divergências de formato.
Esta página também cobre integrações úteis, como hooks pré-commit Git.
CI
GitHub Actions
Adicione o script fmt:check no package.json se ainda não existir:
{
"scripts": {
"fmt:check": "oxfmt --check"
}
}E acrescente um job no fluxo Actions:
name: CI
on:
pull_request:
push:
branches: [main]
permissions: {}
jobs:
format:
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
# Ou yarn, npm etc.
- run: pnpm install --frozen-lockfile
- run: pnpm run fmt:checkCorrigir formatação automaticamente
Se faltar rodar Oxfmt antes do PR e hooks não estiverem disponíveis, dá para adicionar passo autofix em CI com autofix.ci.
Veja https://autofix.ci/setup — será preciso instalar o app GitHub correspondente.
Fluxo exemplo:
name: autofix.ci # precisa usar exatamente este nome
on:
pull_request:
push:
branches: ["main"]
permissions:
contents: read
jobs:
autofix:
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
- run: pnpm install --frozen-lockfile
# Oxfmt grava mudanças; autofix.ci comita diffs.
- run: pnpm run fmt
# Recomendado: use o SHA mais recente deste action conforme docs.
- uses: autofix-ci/action@1.3.2GitLab CI
Adicione fmt:check no package.json:
{
"scripts": {
"fmt:check": "oxfmt --check"
}
}E um job .gitlab-ci.yml:
oxfmt:
image: node:lts
stage: test
before_script:
- npm install
script:
- npm run fmt:checkCache do gerenciador de pacotes pode acelerar instalações.
Hook pré-commit
Para formatar apenas arquivos em stage:
oxfmt --no-error-on-unmatched-pattern
Formata arquivos suportados sem erro quando nada casa (por exemplo só Ruby em stage).
--check verifica sem gravar.
Com lint-staged, no package.json:
{
"lint-staged": {
"*": "oxfmt --no-error-on-unmatched-pattern"
}
}Husky ajuda a instalar o hook na instalação de dependências.