Skip to content

ci node runtime

ControleOnline Manager Agent edited this page Aug 19, 2026 · 1 revision

CI e runtime Node — app-community

Objetivo

Documentar a versão de Node exigida pelo app-community e o alinhamento com ferramentas de análise contínua (Scrutinizer e workflows de PR).

Runtime oficial

O projeto declara Node 20 em package.json (engines.node / campo node).

Qualquer ambiente de build, análise estática ou CI deve usar a mesma major version (20).

Scrutinizer

Arquivo de configuração: .scrutinizer.yml na raiz do repositório.

Problema histórico (issue #143)

  • Scrutinizer rodava com node: v16.
  • O código e dependências usam APIs disponíveis a partir do Node 17+ (ex.: structuredClone).
  • Sintoma típico: falha em eslint-run com ConfigError ... structuredClone is not defined.

Correção

  • Alinhar .scrutinizer.yml para node: v20 (mesma major do package.json).
  • Após o ajuste, a análise JavaScript do Scrutinizer passa a ser coerente com o runtime do projeto.

Workflows locais de PR

Os workflows de Pull Request Checks do repositório também devem assumir Node 20 (ou imagem equivalente). Manter divergência entre Scrutinizer e Actions gera falsos negativos/positivos.

Checklist para novos módulos / forks

  1. Confirmar node: "20" (ou faixa >=20) em package.json.
  2. Garantir que .scrutinizer.yml (se usado) aponta para a mesma major.
  3. Garantir que Actions / imagens de CI usam Node 20.
  4. Não rebaixar para Node 16/18 sem atualizar dependências e revalidar ESLint e testes.

Referências

  • Issue: app-community#143
  • PR de alinhamento histórico: alterações em .scrutinizer.yml (node: v16node: v20)
  • Home técnica: App-Home

Manutenção

Quando a major de Node do projeto mudar (ex.: 22), atualizar em conjunto:

  • package.json
  • .scrutinizer.yml
  • workflows de CI
  • esta página da wiki

Clone this wiki locally