Funcionalidade deploy_catalog - BrunodosSantosVaz/big-bang GitHub Wiki
Funcionalidade BB-F-008 · requisito RF-BB-008 · versão documentada 3.1.0 · código 00ac9462d6b51b904656e3f5dbee29576b93a5da.
Resolver entregas por contratos instalados, distinguindo suporte implementado de integração reservada. O alvo
personalizado permite ao projeto executar seus próprios scripts fora de .bigbang, mantendo a identidade imutável
da imagem promovida.
Pessoa responsável pelo projeto, IA com posse confirmada e automações explicitamente autorizadas.
Repositório e raiz corretos, versão instalada e configuração compatível. O alvo personalizado exige quatro scripts
.sh existentes, não vazios, relativos à raiz do projeto e fora de .bigbang. Somente nomes de variáveis públicas
podem ser declarados em bigbang.toml; esse alvo não aceita nomes de segredos.
Ler contratos de alvo e artefato, conferir capacidades e compatibilidade e montar a composição antes de gerar arquivos. No alvo personalizado, staging e produção executam migração, publicação e saúde em ordem, passando aos scripts um manifesto com os digests dos serviços. Produção separa preparação autenticada, scripts do projeto sem credenciais e criação autenticada da release; rollback baixa e confere o manifesto num passo separado e só depois executa os scripts do projeto, sem o token que leu a release.
Os quatro caminhos devem permanecer dentro do projeto, sem symlinks que escapem da raiz ou apontem para .bigbang.
O manifesto deve conter exatamente um digest SHA-256 imutável por serviço configurado. O alvo AWS é implementado em estágio Beta (S3 + CloudFront via OIDC, consumindo formato estático); PaaS permanece reservado e não é anunciado como implementado.
Contrato ausente, inválido ou incompatível, script ausente ou manifesto mutável interrompe a geração ou o deploy. Falha de migração, publicação ou saúde impede o próximo passo do alvo personalizado; falha no rollback não inicia uma migração.
Antes de executar qualquer script do projeto, o adaptador usa env -i e repassa somente PATH e, quando
definidas, LANG, LC_ALL, TZ, TMPDIR, TMP e TEMP, além dos valores públicos declarados em
variaveis_personalizado. Os workflows executam esse código em passos sem GH_TOKEN, GITHUB_TOKEN, outros
segredos da publicação ou credenciais Git persistidas. Um teste procura tokens sentinela no ambiente de todos os
processos ancestrais do script. Produção e rollback real continuam atrás da aprovação humana do ambiente
producao. Esta funcionalidade não concede novas permissões a visitantes nem substitui decisões exigidas pelo
fluxo.
Resultado esperado: workflows gerados chamam os scripts do projeto com o manifesto de imagem conferido, sem copiar
esses scripts para .bigbang. O retorno e os arquivos afetados são conferidos pelos cenários rastreados abaixo;
falha impede considerar a operação concluída.
Declare os caminhos no bigbang.toml, relativos à raiz e fora de .bigbang:
[entrega]
perfil = "deploy"
alvo = "personalizado"
[deploy]
script_publicar = "scripts/deploy/publicar.sh"
script_migrar = "scripts/deploy/migrar.sh"
script_saude = "scripts/deploy/saude.sh"
script_voltar = "scripts/deploy/voltar.sh"
variaveis_personalizado = ["DEPLOY_APP"]publicar e migrar recebem <ambiente> <manifesto>; saude recebe <ambiente>; voltar recebe
<ambiente> <manifesto> <versao>. O manifesto temporário tem uma linha servico=imagem@sha256:<64 hex> por
serviço configurado. O workflow baixa o imagem.txt no passo autenticado, passa seu conteúdo conferido ao passo sem
credenciais e não executa migração durante rollback. Cada script deve sair com código zero ao concluir; ausência,
caminho inválido ou falha impede a etapa seguinte.
Os símbolos abaixo compõem o inventário real do módulo, incluindo auxiliares internos; não representam APIs públicas independentes.
| Símbolo | Linha |
|---|---|
Target |
29 |
Artifact |
42 |
_fail |
51 |
_inside |
55 |
_base |
61 |
_read |
65 |
_names |
90 |
_file |
100 |
read_target |
106 |
read_artifact |
130 |
_custom_script |
150 |
_customize_target |
169 |
resolve |
188 |
entries |
209 |
problems |
226 |
| Símbolo | Linha |
|---|---|
_string |
37 |
_integer |
51 |
_boolean |
63 |
_string_list |
67 |
_regex |
84 |
validate |
165 |
_validate_legacy |
178 |
_validate_section |
200 |
_cross_checks |
225 |
dialect |
263 |
_message_to_v3 |
278 |
_v3_to_legacy |
285 |
_legacy_to_v3 |
355 |
_with_optional |
370 |
views |
380 |
text_to_v3 |
413 |
parse |
447 |
load |
454 |
_consistent |
477 |
get |
493 |
_get |
524 |
format_value |
538 |
check |
38 |
| Símbolo | Linha |
|---|---|
cli_name |
103 |
cli_option |
109 |
is_build_key |
171 |
key_to_v3 |
175 |
key_to_legacy |
184 |
value_to_v3 |
202 |
value_to_legacy |
206 |
label_dialect |
214 |
label |
220 |
| Símbolo | Linha |
|---|---|
Plan |
35 |
pipeline_installed |
49 |
initial_context |
57 |
dependabot_entries |
65 |
with_computed |
82 |
build_plan |
366 |
framework_plan |
394 |
is_v3_pipeline |
445 |
_layers |
450 |
_walk |
466 |
_add_tree |
474 |
_add_skills |
486 |
agents_block |
507 |
_add_agents_md |
515 |
stack_block |
530 |
_add_stack_md |
544 |
_generated_candidates |
558 |
_text_has_notice |
587 |
changes |
594 |
diff |
607 |
apply |
614 |
_remove_empty_parents |
626 |
__init__ |
38 |
add |
44 |
.bigbang/tests/test_deploy_catalog.py:test_configuracao_atual_resolve_imagem_sem_chave_nova.bigbang/tests/test_deploy_catalog.py:test_novo_alvo_sem_editar_enum_ou_nucleo.bigbang/tests/test_deploy_catalog.py:test_formato_tem_sua_camada_antes_do_alvo.bigbang/tests/test_deploy_catalog.py:test_alvo_desconhecido_ou_reservado_nao_grava_nada.bigbang/tests/test_deploy_catalog.py:test_adaptador_sem_script_e_recusado_antes_de_gerar.bigbang/tests/test_deploy_catalog.py:test_artefato_reservado_ou_desconhecido_e_recusado.bigbang/tests/test_deploy_catalog.py:test_capacidade_incompativel_e_recusada.bigbang/tests/test_deploy_catalog.py:test_artefato_sem_script_de_promocao_e_recusado.bigbang/tests/test_deploy_catalog.py:test_verificar_detecta_contrato_invalido_no_template.bigbang/tests/test_deploy_catalog.py:test_contrato_invalido_e_recusado.bigbang/tests/test_deploy_catalog.py:test_nao_le_script_por_link_fora_do_adaptador.bigbang/tests/test_deploy_catalog.py:test_nome_nao_escapa_do_catalogo.bigbang/tests/test_deploy_catalog.py:test_catalogo_funciona_antes_da_fundacao_e_nao_escreve.bigbang/tests/test_deploy_catalog.py:test_catalogo_exibe_adaptador_quebrado_e_sai_com_falha.bigbang/tests/test_deploy_catalog.py:test_troca_de_alvo_remove_arquivo_obsoleto.bigbang/tests/test_deploy_catalog.py:test_compilado_nao_depende_de_catalogo_deploy.bigbang/tests/test_deploy_catalog.py:test_esquema_recusa_injecao_em_seletores.bigbang/tests/test_deploy_custom.py:test_production_custom_scripts_run_outside_tokenized_steps.bigbang/tests/test_deploy_custom.py:test_personalized_secret_variables_are_rejected.bigbang/tests/test_deploy_custom.py:test_custom_publish_script_cannot_read_a_tokenized_step_ancestor.bigbang/tests/test_deploy_catalog.py:test_identidade_sha256_nao_pode_ser_configurada_para_imagem.bigbang/tests/test_deploy_artifacts.py:test_catalog_and_workflows_enable_package_and_static_for_custom_target
Requisitos · Matriz de rastreabilidade · Referência CLI
.bigbang/bb/deploy_catalog.py.bigbang/esteira/perfis/deploy/artefatos/estatico/artefato.toml.bigbang/esteira/perfis/deploy/artefatos/imagem/artefato.toml.bigbang/esteira/perfis/deploy/artefatos/pacote/artefato.toml.bigbang/esteira/perfis/deploy/alvos/aws/alvo.toml.bigbang/esteira/perfis/deploy/alvos/paas/alvo.toml.bigbang/esteira/perfis/deploy/alvos/personalizado/alvo.toml.bigbang/esteira/perfis/deploy/alvos/tsuru/alvo.toml.bigbang/esteira/perfis/deploy/alvos/vps-docker/alvo.toml.bigbang/bb/config.py.bigbang/bb/names.py.bigbang/esteira/perfis/deploy/README.md.bigbang/esteira/perfis/deploy/alvos/personalizado/scripts/alvo.sh.bigbang/esteira/perfis/deploy/scripts/promover.sh.bigbang/bb/generator.py.bigbang/esteira/nucleo/arquivos/.github/workflows/bb-publicar-producao.yml.tmpl.bigbang/esteira/nucleo/scripts/publicar-producao.sh.bigbang/esteira/perfis/deploy/arquivos/.github/workflows/bb-voltar-versao.yml.tmpl.bigbang/esteira/perfis/deploy/scripts/publicar-personalizado.sh.bigbang/esteira/perfis/deploy/scripts/finalizar-publicacao.sh.bigbang/MIGRACAO.md.bigbang/processo/14-automacoes.md