Skip to content

CI completa com os nomes novos #20

Closed

Description

@patrickbrandao

Contexto

A CI mínima provisória (#38) já apagou os workflows herdados de publicação e release, reescreveu o dependabot.yml, religou o Actions (actions selecionadas e fixadas por SHA) e roda lint, unit e e2e do backend. #19 trocou os nomes dos workspaces nela. Esta issue completa a CI com os nomes finais. Release e publicação no Docker Hub ficam para #31.

Estado da segurança do repositório (2026-10-10): os alertas do Dependabot e o relato privado de vulnerabilidades estão ligados. As atualizações de segurança automáticas (PRs do Dependabot para alertas) estão desligadas (automated-security-fixes: enabled=false).

PRs do Dependabot abertos em 2026-10-10:

PR Conteúdo Observação
#1 node:24-alpine em docker/Dockerfile (d1b3b4d → ebfe2f9) só digest
#2 gcr.io/distroless/nodejs24-debian13 em docker/Dockerfile (bb6b03d → 9eeb7f5) só digest
#3 grupo vitest (dev) minor/patch
#5 grupo better-auth, 5 pacotes minor/patch, mas minors do Better Auth podem exigir migrations de schema
#6 grupo patch-and-minor, 24 pacotes contém um major (@types/supertest 6.0.3 → 7.2.1) e atualiza o modelparams (0.0.57 → 0.0.69), pacote da Manifest que vira a única fonte do catálogo de parâmetros depois de #17
#7 eventsource-parser 3.1.0 → 4.1.1 major; afeta o streaming no hot path (routing/proxy/sse-parser.ts, stream-protocol.ts, stream-writer.ts)
#8 @nestjs/cli 11.0.24 → 12.0.8 major; CLI do Nest 12 com o runtime ainda em Nest 11

Política: nenhum PR do Dependabot é mergeado antes de a CI existir (#38). Majors são fechados com um ponteiro para o v0.2. O merge é sempre do usuário.

Escopo

Docker Hub: os secrets DOCKERHUB_USERNAME/DOCKERHUB_TOKEN só devem ser cadastrados depois que o docker.yml herdado tiver saído (#38). O docker.yml desta issue não usa secrets; quem os usa é o de #31.

Fora de escopo

Critérios de aceite

Dependências

Agente responsável

devops

Activity

  1. added this to the v0.1 milestone on Oct 10, 2026
  2. changed the title [-]CI de PR, Dependabot e reativação do GitHub Actions[/-] [+]CI completa com os nomes novos[/+] on Oct 10, 2026
  3. patrickbrandao commented on Oct 10, 2026

    @patrickbrandao
    OwnerAuthor

    Itens vindos da revisão do PR #44 (#44 (comment)), registrados aqui conforme a ADR 0002:

    • S2: a ci.yml da CI mínima provisória #38 não roda typecheck (tsc --noEmit) nem build (nest build, vite build, build/drift da CLI). A CI completa com os nomes novos #20 adiciona esses jobs. Até lá, os PRs Remover a camada SaaS do dashboard #12 a Renomear workspaces npm e o pacote de versão #19 continuam reportando no corpo do PR o typecheck e o build locais dos pacotes afetados.
    • N1: a concorrência da ci.yml cancela runs pendentes de push na main. Agrupar pushes por github.sha para que todo commit da main seja testado.
    • N2: documentar os nomes exatos dos checks para a proteção da main. Os jobs filtrados por path (smoke, CodeQL) não podem ser obrigatórios.
    • N4: devolver ao cabeçalho do dependabot.yml a nota de que os majors do uuid são só ESM.
    • N8: os grupos de segurança do Dependabot não fazem nada enquanto as atualizações de segurança estiverem desligadas. Decidir se elas devem ser ligadas.
  4. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    A tabela "PRs do Dependabot abertos em 2026-10-10" desta issue está com os números desatualizados. Os PRs abertos do Dependabot hoje são estes:

    PR Conteúdo
    #5 grupo better-auth (1.7.4 → 1.7.7, 5 pacotes)
    #47 postgres:16-alpine em /docker, só digest
    #48 node:24-alpine e distroless/nodejs24-debian13 em /docker, só digest (substitui #1 e #2)
    #49 actions/setup-node 7.0.0 → 7.1.0

    Fechados: #1, #2, #3, #6, #7, #8 e #50. A triagem de #47–#50 está em #54. Os itens de escopo e os critérios de aceite que citam #1–#8 precisam ser atualizados para esses números, e a correção dos alertas de runtime está no PR #55 (PR A de #54).

  5. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    Proposta vinda de #53 / #56: rodar testes de backend também fora de UTC

    Os runners do GitHub rodam em UTC. Nesse fuso, a formatação UTC e a local dão a mesma string, e por isso a CI não pegou o bug de #53: os limites ignoravam o uso registrado no segundo corrente, e o seed do smoke test estava no relógio errado. Fora de UTC, ST-07 e ST-08 falhavam. A correção está no #56.

    Como mexer em .github/workflows/** é risco alto (ADR 0002), a mudança não foi feita no #56. Fica registrada aqui para entrar na CI completa desta issue.

    Checklist

    • Em .github/workflows/ci.yml, job backend-e2e, adicionar uma matriz de fuso e exportar TZ:

      backend-e2e:
        name: Backend e2e (PostgreSQL 16, TZ=${{ matrix.tz }})
        runs-on: ubuntu-latest
        timeout-minutes: 30
        strategy:
          fail-fast: false
          matrix:
            tz: [UTC, America/Sao_Paulo]
        services:
          postgres:
            # (inalterado)
        env:
          DATABASE_URL: postgresql://myuser:mypassword@localhost:5432/mydatabase
          BETTER_AUTH_SECRET: ci-test-secret-at-least-32-characters-long!!
          NODE_ENV: test
          TZ: ${{ matrix.tz }}

      Deixe o container do Postgres em UTC. O bug de E2E de limites (ST-07/ST-08) falham fora de UTC #53 vive no lado do Node, que grava e lê timestamp without time zone no relógio local.

    • No job unit, rodar o backend também com TZ=America/Sao_Paulo. A suíte já cobre vários fusos em period.util.tz.spec.ts (processos filhos com TZ real), mas outras specs assumem o fuso do host. Opção barata, um passo extra só para o backend:

      - if: matrix.workspace == 'backend'
        run: npm test --workspace=packages/backend
        env:
          TZ: America/Sao_Paulo
    • Se a regra de proteção de main lista os checks pelo nome, atualizar os nomes exigidos para os dois jobs da matriz (Backend e2e (PostgreSQL 16, TZ=UTC) e Backend e2e (PostgreSQL 16, TZ=America/Sao_Paulo)).

    Validação local no #56: a suíte e2e completa passa com TZ=UTC e com TZ=America/Sao_Paulo (60 suítes, 514 testes), e a suíte unit passa com TZ=UTC, TZ=America/Sao_Paulo e TZ=Asia/Kolkata.

  6. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    Achado do PR #57: packages/frontend/vite.config.ts ainda carrega @codecov/vite-plugin, que envia estatísticas do bundle quando CODECOV_TOKEN está definido. Removê-lo junto com o Codecov que saiu na #38.

  7. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    Achado da revisão do PR #60: .github/workflows/docker-smoke.yml:204-210 ainda cita MANIFEST_PUBLIC_STATS, que não existe mais depois da #15. O passo passa assim mesmo. Corrigir junto com o rebrand da CI nesta issue.

  8. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    Da revisão do PR #69: packages/backend/test/ e packages/backend/scripts/ não passam por lint nem por tsc. Incluir na CI completa: lint com o projeto de teste e tsc -p de um tsconfig que cubra test/.

  9. patrickbrandao commented on Oct 11, 2026

    @patrickbrandao
    OwnerAuthor

    Resto do #60 (#15) para a CI completa: em .github/workflows/docker-smoke.yml:204-210, o nome e a mensagem do passo ainda citam MANIFEST_PUBLIC_STATS, que deixou de existir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:infraInfra: CI, Docker, imagem multi-arch, releases, templates de deployprioridade:altaPrioridade alta

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions