Pular para o conteúdo principal

Pipeline de CI

A CI é executada a cada push para main e em todo pull request. Ela usa escopo inteligente para pular jobs caros quando apenas áreas não relacionadas foram alteradas.

Visão geral dos jobs

JobFinalidadeQuando é executado
preflightDetectar alterações apenas em docs, escopos alterados, extensões alteradas e gerar o manifesto de CISempre em pushes e PRs que não estejam em rascunho
security-fastDetecção de chave privada, auditoria de workflow via zizmor, auditoria de dependências de produçãoSempre em pushes e PRs que não estejam em rascunho
build-artifactsCompilar dist/ e a Control UI uma vez, enviar artefatos reutilizáveis para jobs downstreamAlterações relevantes para Node
checks-fast-coreLanes rápidas de correção no Linux, como verificações de bundled/plugin-contract/protocolAlterações relevantes para Node
checks-node-extensionsShards completos de testes de bundled-plugin em toda a suíte de extensõesAlterações relevantes para Node
checks-node-core-testShards de testes centrais de Node, excluindo lanes de canais, bundled, contrato e extensõesAlterações relevantes para Node
extension-fastTestes focados apenas nos bundled plugins alteradosQuando alterações em extensões são detectadas
checkPrincipal gate local na CI: pnpm check mais pnpm build:strict-smokeAlterações relevantes para Node
check-additionalProteções de arquitetura, boundary e ciclos de importação, além do harness de regressão do watch do gatewayAlterações relevantes para Node
build-smokeTestes smoke da CLI compilada e smoke de memória na inicializaçãoAlterações relevantes para Node
checksLanes Linux Node restantes: testes de canais e compatibilidade Node 22 apenas em pushAlterações relevantes para Node
check-docsFormatação, lint e verificação de links quebrados da documentaçãoDocs alteradas
skills-pythonRuff + pytest para Skills com backend em PythonAlterações relevantes para Skills em Python
checks-windowsLanes de teste específicas do WindowsAlterações relevantes para Windows
macos-nodeLane de testes TypeScript no macOS usando os artefatos compilados compartilhadosAlterações relevantes para macOS
macos-swiftLint, build e testes em Swift para o app macOSAlterações relevantes para macOS
androidMatriz de build e testes do AndroidAlterações relevantes para Android

Ordem de fail-fast

Os jobs são ordenados para que verificações baratas falhem antes de as mais caras serem executadas:
  1. preflight decide quais lanes existem de fato. A lógica docs-scope e changed-scope são etapas dentro desse job, não jobs independentes.
  2. security-fast, check, check-additional, check-docs e skills-python falham rapidamente sem esperar pelos jobs mais pesados de artefatos e matriz de plataforma.
  3. build-artifacts é executado em paralelo com as lanes rápidas de Linux para que consumidores downstream possam começar assim que o build compartilhado estiver pronto.
  4. Depois disso, as lanes mais pesadas de plataforma e runtime são distribuídas: checks-fast-core, checks-node-extensions, checks-node-core-test, extension-fast, checks, checks-windows, macos-node, macos-swift e android.
A lógica de escopo fica em scripts/ci-changed-scope.mjs e é coberta por testes unitários em src/scripts/ci-changed-scope.test.ts. O workflow separado install-smoke reutiliza o mesmo script de escopo por meio do seu próprio job preflight. Ele calcula run_install_smoke a partir do sinal mais restrito de changed-smoke, então o smoke de Docker/install só é executado para alterações relevantes para instalação, empacotamento e contêiner. Em pushes, a matriz checks adiciona a lane compat-node22, executada apenas em push. Em pull requests, essa lane é ignorada e a matriz permanece focada nas lanes normais de teste/canais.

Runners

RunnerJobs
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, verificações Linux, verificações de docs, Skills em Python, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Equivalentes locais

pnpm check          # tipos + lint + formatação
pnpm build:strict-smoke
pnpm check:import-cycles
pnpm test:gateway:watch-regression
pnpm test           # testes do vitest
pnpm test:channels
pnpm check:docs     # formatação + lint + links quebrados da documentação
pnpm build          # compila dist quando as lanes de artefato/build-smoke da CI importam