feat(ci-config): bloco release: com a config de provedor do fechar release [TMFP-65899] #162

Merged
tmf-ia merged 2 commits from feat/TMFP-65899-config-release into develop 2026-11-03 22:40:09 -03:00
Owner

O que muda

Segunda peça do "fechar release" no ci-shared (ADR 0022; epic TMFP-60560): a config de provedor de cada repo, em arquivo no próprio repo.

  • Bloco opcional release: no .forgejo/ci-config.yml, validado pelo scripts/ci_config.py e pelo schemas/ci-config.schema.json:
    • provider: só forgejo;
    • publish_workflow: arquivo *.yml em .forgejo/workflows/; vazio = sem dispatch de publicação;
    • dispatch_branch: padrão develop; valor com cara de tag reprova (dispatch só roda em branch);
    • tag_pattern: padrão ^v[0-9]+\.[0-9]+\.[0-9]+$ (fullmatch);
    • hub_close: padrão false; hub_produto obrigatório com hub_close: true, salvo hub_release_produto, e os dois têm de bater.
  • Chave desconhecida reprova. Chave com nome de credencial ou valor com cara de token/segredo reprova, sem o valor aparecer no log: o token do bot vem do Infisical, nunca do arquivo.
  • Repo sem o bloco: valem os padrões e nada muda.
  • Subcomando novo ci_config.py fechar-release --repo <dir> [--github-output], que escreve os outputs release_<chave> para o workflow (TMFP-71790).
  • templates/ci-config.exemplo.yml, docs/guia-de-adocao.md, CHANGELOG.md.

Prova local

python3 -m unittest discover -s tests/ci-config -p 'test_release_fechar.py' -q   -> OK (17 testes)
python3 -m unittest discover -s tests/ci-config -q   -> 206 testes, 2 falhas

As 2 falhas são as de antes em test_heavy_fora_do_pr (precisam do pytest, que não tem nesta estação); também falham na develop.

TMFP-65899

🤖 Generated with Claude Code

https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2

## O que muda Segunda peça do "fechar release" no ci-shared (ADR 0022; epic TMFP-60560): a config de provedor de cada repo, em arquivo no próprio repo. - Bloco opcional `release:` no `.forgejo/ci-config.yml`, validado pelo `scripts/ci_config.py` e pelo `schemas/ci-config.schema.json`: - `provider`: só `forgejo`; - `publish_workflow`: arquivo `*.yml` em `.forgejo/workflows/`; vazio = sem dispatch de publicação; - `dispatch_branch`: padrão `develop`; valor com cara de tag reprova (dispatch só roda em branch); - `tag_pattern`: padrão `^v[0-9]+\.[0-9]+\.[0-9]+$` (`fullmatch`); - `hub_close`: padrão `false`; `hub_produto` obrigatório com `hub_close: true`, salvo `hub_release_produto`, e os dois têm de bater. - Chave desconhecida reprova. Chave com nome de credencial ou valor com cara de token/segredo reprova, sem o valor aparecer no log: o token do bot vem do Infisical, nunca do arquivo. - Repo sem o bloco: valem os padrões e nada muda. - Subcomando novo `ci_config.py fechar-release --repo <dir> [--github-output]`, que escreve os outputs `release_<chave>` para o workflow (TMFP-71790). - `templates/ci-config.exemplo.yml`, `docs/guia-de-adocao.md`, `CHANGELOG.md`. ## Prova local ``` python3 -m unittest discover -s tests/ci-config -p 'test_release_fechar.py' -q -> OK (17 testes) python3 -m unittest discover -s tests/ci-config -q -> 206 testes, 2 falhas ``` As 2 falhas são as de antes em `test_heavy_fora_do_pr` (precisam do pytest, que não tem nesta estação); também falham na develop. TMFP-65899 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
merge: develop em feat/TMFP-65899-config-release (traz a TMFP-65898; CHANGELOG mantém as duas entradas)
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 5m14s
40eb586a2e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ES1xwVdpQV69zEsuLLKzx2
tmf-ia merged commit 282344642a into develop 2026-11-03 22:40:09 -03:00
Sign in to join this conversation.
No reviewers
No labels
seguranca
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
TMF/ci-shared!162
No description provided.