Performance8 min de leitura·Set 2026

Lighthouse CI no pipeline de PR: configuração completa

Automatize auditorias de performance em cada pull request para nunca regredir em CWV sem ser alertado.

Lighthouse CIGitHub ActionsCI/CDAutomação

O problema da performance sem guardas

Sem enforcement automático, degradações de performance chegam à produção silenciosamente. Um bundle ligeiramente maior aqui, uma imagem sem lazy-load ali — em semanas o LCP piora sem que ninguém tenha recebido um alerta.

O Lighthouse CI resolve isso adicionando uma etapa de auditoria ao pipeline que bloqueia o merge quando os scores caem abaixo dos thresholds definidos pelo time.

Instalação e configuração inicial

Instale o `@lhci/cli` como devDependency e crie o arquivo `lighthouserc.js` na raiz do projeto. A configuração define quais URLs auditar, quantas execuções (para estabilidade estatística) e os assertions — os limites que vão reprovar o build.

Use pelo menos 3 runs por URL para obter resultados estáveis. O Lighthouse tem variância intrínseca; a mediana de 3 execuções é muito mais confiável que um único run.

// código
// lighthouserc.js
module.exports = {
  ci: {
    collect: {
      url: ['http://localhost:3000/', 'http://localhost:3000/sobre'],
      numberOfRuns: 3,
    },
    assert: {
      assertions: {
        'categories:performance': ['error', { minScore: 0.9 }],
        'categories:accessibility': ['error', { minScore: 0.95 }],
        'first-contentful-paint': ['warn', { maxNumericValue: 2000 }],
        'largest-contentful-paint': ['error', { maxNumericValue: 3000 }],
        'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }],
      },
    },
    upload: {
      target: 'temporary-public-storage',
    },
  },
}

Integrando ao GitHub Actions

O workflow precisa subir a aplicação antes de rodar o LHCI. Configure o job para fazer o build, servir localmente com `serve` ou `vite preview`, e então executar `lhci autorun`. O resultado vai como status check no PR.

Para projetos Next.js ou apps com SSR, use o `server-command` do LHCI para subir o servidor de produção. Para SPAs com Vite, `vite build && vite preview` é suficiente.

Atenção

Nunca rode o LHCI contra a branch de produção diretamente. Sempre contra um servidor temporário levantado no próprio runner para evitar interferência com usuários reais.

P

Portodev Studio

Consultoria e engenharia digital · Set 2026

← Ver todos os conteúdos
[ Aplicar na prática ]

Esses padrões no seu produto.

Em 30 minutos mapeamos como esses conceitos se aplicam ao contexto do seu projeto real.