feat(release): registro da release no Hub e pré-lock para esperas longas [INFRA-69543] #119
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/INFRA-69543-releases-e-lock"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
INFRA-69543 — release.yml reusável: registro de release no Hub e lock do host preso nas esperas
1. Registro da release no Hub (
issue_releases)deploy_hub_release(padrãofalse) ehub_release_produto(slug do Hub, obrigatório comtrue, validado pelo schema).Hub release: registrar issues da release (issue_releases)no jobdeploy, depois do deploy de produção verde, comcontinue-on-errore semalways().scripts/hub_registrar_release.py:POST /api/v2/releasespara cada chave que aparece no assunto dos commits<tag anterior>..<tag>. Usa os prefixos dehub_done_prefixos, pula revert e reaproveita a seleção e o git dohub_done_no_deploy.py.released_at= instante do deploy verde (passo novoInstante do deploy verde, logo depois da verificação pública).close_issue: false: o status continua com o hub-done.HUB_TOKENdo Infisical que o hub-done usa. Entra só por$GITHUB_ENVe nunca é impresso.::warning::hub-release:. Zero registros com chaves no intervalo também avisa (lição da TH-62613).2. Lock do host só na troca
deploy_pre_lock_scripte argumentoPRE_LOCK_SCRIPTdodeploy-remoto.sh(passo 0a).git show <sha>:<script>) e roda antes doflock. A espera de campanha e de backup (até 170 min no Hub) para de segurar/var/lock/tmf.PRE_LOCK_OK=1para odeploy_script, que pode reconferir a janela com teto curto.tmf-deploy-gateaceita a chave. Vazia, ela nem chega ao host (host com script antigo continua funcionando).3. Docs
docs/scripts.mdetemplates/ci-config.exemplo.yml.Testes
tests/release/test_deploy_remoto.py::TestPreLock: durante a espera do pré-lock, outro deploy pega o lock (flock -w 3). Controle negativo: com a espera dentro dodeploy_script, o lock fica preso. Também cobre script lido do SHA, falha, script ausente, tag movida, caminho inválido ePRE_LOCK_OK.tests/hub-done-no-deploy/test_hub_registrar_release.py: git real e Hub simulado, mais o contrato do yaml, do schema e das docs.tmf-ci-python:3.12-20261009-2e51884: as 19 suítes passaram (release: 444 testes OK, 1 pulado).Para adotar (fora deste PR)
aguardar-janela.shcomodeploy_pre_lock_script, e o blue-green com teto curto quandoPRE_LOCK_OK=1.capture-releasespróprio no mesmo PR que ligadeploy_hub_release.🤖 Generated with Claude Code
https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn