Pular para conteúdo

Web CI Pipeline — auraxis-web

Criado: 2026-05-09 Contexto: PRs #808, #809, #810 — falha recorrente no job E2E


Visão geral

O CI do auraxis-web (ci.yml) roda em todo PR e push para main. Jobs em ordem de dependência:

lint ─┐
typecheck ─┤
feature-flag-hygiene ─┤─► build ─► e2e
i18n-parity ─┤             └─► docker-build
test ─┤                    └─► bundle-analysis
contract-smoke ─┘          └─► lighthouse
                           └─► a11y

Job E2E — arquitetura atual

O job e2e builda o Nuxt localmente antes de rodar o Playwright:

e2e:
  needs: [build]
  steps:
    - pnpm install
    - pnpm playwright install --with-deps chromium
    - name: Build Nuxt app        # ← build local
      run: pnpm build
      env:
        NODE_ENV: production
    - pnpm test:e2e

Por que não usa artifact?

download-artifact@v4 falha consistentemente ao tentar baixar artifacts produzidos pelo job build no mesmo workflow run, mesmo com o step Upload build artifact reportando sucesso.

Erro observado:

Error: Unable to download artifact(s): Artifact not found for name: nuxt-build
Please ensure that your artifact is not expired and the artifact was uploaded
using a compatible version of toolkit/upload-artifact.

Causa raiz: incompatibilidade de escopo entre upload-artifact@v4 e download-artifact@v4 em runs com re-tentativas (attempt ≥ 2) ou em certos contextos de PR. O Lighthouse e o A11y nunca sofreram isso porque eles sempre fizeram build local — o E2E foi corrigido para seguir o mesmo padrão em 2026-05-09.

Regra: nunca re-introduzir download-artifact no job E2E.


Locale EN — congelamento MVP1 (DEC-186)

app/i18n/locales/en.json está congelado. O CI valida o SHA-256 do arquivo no job Locale EN Freeze (DEC-186).

Para modificar o EN legitimamente: 1. Adicionar [en-freeze-bypass] no subject do commit 2. Atualizar app/i18n/locales/.en-frozen.sha256 com o SHA do arquivo modificado

# Regenerar o SHA após editar en.json:
sha256sum app/i18n/locales/en.json | awk '{print $1}' \
  > app/i18n/locales/.en-frozen.sha256

Nunca commitar mudanças em en.json sem seguir os dois passos.


Comandos locais equivalentes ao CI

# CI completo (sem E2E nem Lighthouse):
pnpm quality-check

# Com E2E:
bash scripts/run_ci_like_actions_local.sh --local --with-e2e

# Com Lighthouse:
bash scripts/run_ci_like_actions_local.sh --local --with-lighthouse

Referências

  • Workflow: .github/workflows/ci.yml
  • Fix do E2E artifact: PRs #808, #809, #810
  • Freeze do locale EN: commit 14458d2 (dec-02, DEC-186)