Skip to content

Deploy pacotes

github-actions[bot] edited this page Oct 12, 2026 · 1 revision

Deploy de pacotes e arquivos com manifesto SHA-256

Os formatos pacote e estatico empacotam arquivos selecionados em um bundle determinístico. A candidata registra formato, nome, tamanho e SHA-256 do bundle, além do caminho, tamanho e SHA-256 de cada arquivo em manifesto.json. manifesto.sha256 fixa os bytes do manifesto. Repetir o build com a mesma entrada gera os mesmos bytes.

Finalidade

Promover um pacote de aplicação ou conjunto de arquivos estáticos sem reconstruir o conteúdo entre candidata, staging e produção. O alvo personalizado recebe o manifesto verificado e decide como instalá-lo.

Atores

A pessoa mantenedora escolhe [deploy].artefato = "pacote" ou "estatico", configura caminhos_artefato e define os scripts do alvo personalizado.

Pré-condições

O build do projeto deve gerar os caminhos declarados antes da criação da candidata. Caminhos absolutos, traversal e symlinks são recusados. Scripts de build e deploy não recebem credenciais de publicação.

Fluxo principal

  1. A esteira executa o comando de build com ambiente mínimo, sem GH_TOKEN, tokens de Actions, chaves AWS ou segredos do projeto.
  2. O framework seleciona os arquivos, cria candidata/artefato.tar.gz, candidata/manifesto.json e candidata/manifesto.sha256 e calcula os hashes SHA-256.
  3. A candidata é armazenada como artefato da execução. A validação confere formato, caminhos, manifesto, bundle e conteúdo de cada membro.
  4. A release candidata publica os mesmos bytes e hashes. Staging valida o manifesto antes de passar seu caminho aos scripts migrar e publicar do alvo.
  5. Produção baixa os assets da candidata aprovada, verifica os hashes e entrega o manifesto ao script de promoção. Não há novo build.
  6. Rollback baixa a versão escolhida e confere manifesto e bundle antes de entregá-los ao script voltar; o framework não desfaz migrações do projeto.

Validações

Manifesto alterado, sidecar incorreto, bundle corrompido, membro extra/ausente, caminho inseguro, symlink, tamanho incompatível ou hash divergente bloqueiam a etapa antes do script do projeto.

Alternativas e erros

Build sem arquivos correspondentes, pacote com mais de um arquivo, manifesto fora do schema, arquivo duplicado, arquivo ausente ou conteúdo divergente bloqueiam a execução. A promoção não reconstrói ou substitui artefatos.

Permissões

O alvo personalizado recebe apenas variáveis públicas nomeadas em variaveis_personalizado; segredos de publicação são usados por passos confiáveis do framework e não chegam ao build ou aos scripts do projeto. Aprovação e ambiente de produção mantêm os portões existentes.

Resultados

Uma candidata imutável e verificável por SHA-256, identificada por manifesto que acompanha os mesmos bytes em staging, promoção e rollback. Formatos e alvo AWS ainda não implementados permanecem indisponíveis no catálogo.

Perfil de deploy · Segurança · Rastreabilidade.

Clone this wiki locally