release: ci-shared develop → main — imagens de CI nas tags imutáveis (INFRA-68981) + gate de versionCode (INFRA-68854) #73

Merged
tarcisio merged 7 commits from release/2026-10-09-pins into main 2026-10-09 00:02:33 -03:00
Owner

Release do ci-shared: develop → main (09/10/2026)

Motivo: levar aos produtos as tags imutáveis das imagens de CI (INFRA-68981). Isso tira o falso verde do gate de CVE (tag do Trivy republicada em 08/10) e a quebra do /usr/bin/python3 (INFRA-68982). Todos os consumidores usam @main.

O que entra

PR Issue O quê
#71 INFRA-68981 tmf-ci-python:3.12-20261009-2e51884 nos defaults (ci.yml/ci-base.yml) e em 9 reusáveis
#72 INFRA-68981 tmf-ci-node:20-…, tmf-ci-trivy:0.68.2-db20261009-…, tmf-postgres-base:16-…, tmf-redis-base:7-… (todas -20261009-2e51884)
#70 INFRA-68854 Gate de versionCode Android no PR (dentro do job gates). Release para a main sem bump = aviso, não barra

Digests conferidos pela sessão TMF Imagens (runs 43420/43421/43441 do tmf_imagens, commit 2e51884, contrato rodado nas imagens publicadas).

Risco e conferência pós-merge

  • Prazo do Trivy: o pin congela o DB em 09/10, e o gate tolera 10 dias. A renovação automática é o tmf_imagens #22 (INFRA-69010), já mergeado; falta o secret CI_SHARED_PIN_TOKEN. Sem ele, o pin precisa ser renovado à mão até ~19/10.
  • Hoje as flutuantes apontam para os mesmos digests das imutáveis, então o conteúdo das imagens não muda neste release. Muda só que deixa de mudar sozinho.
  • Conferir depois do merge: o 1º run de CI de um produto do ci.yml (DANI) e de um do ci-base.yml (HelpCor/Hub/TMF9).
  • Rollback: reverter o merge na main.

🤖 Generated with Claude Code

https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn

## Release do ci-shared: develop → main (09/10/2026) **Motivo:** levar aos produtos as tags imutáveis das imagens de CI (INFRA-68981). Isso tira o falso verde do gate de CVE (tag do Trivy republicada em 08/10) e a quebra do `/usr/bin/python3` (INFRA-68982). Todos os consumidores usam `@main`. ## O que entra | PR | Issue | O quê | |---|---|---| | #71 | INFRA-68981 | `tmf-ci-python:3.12-20261009-2e51884` nos defaults (`ci.yml`/`ci-base.yml`) e em 9 reusáveis | | #72 | INFRA-68981 | `tmf-ci-node:20-…`, `tmf-ci-trivy:0.68.2-db20261009-…`, `tmf-postgres-base:16-…`, `tmf-redis-base:7-…` (todas `-20261009-2e51884`) | | #70 | INFRA-68854 | Gate de versionCode Android no PR (dentro do job `gates`). Release para a main sem bump = **aviso**, não barra | Digests conferidos pela sessão TMF Imagens (runs 43420/43421/43441 do tmf_imagens, commit 2e51884, contrato rodado nas imagens publicadas). ## Risco e conferência pós-merge - **Prazo do Trivy:** o pin congela o DB em 09/10, e o gate tolera 10 dias. A renovação automática é o tmf_imagens #22 (INFRA-69010), já mergeado; falta o secret `CI_SHARED_PIN_TOKEN`. Sem ele, o pin precisa ser renovado à mão até ~19/10. - Hoje as flutuantes apontam para os mesmos digests das imutáveis, então o conteúdo das imagens não muda neste release. Muda só que deixa de mudar sozinho. - Conferir depois do merge: o 1º run de CI de um produto do `ci.yml` (DANI) e de um do `ci-base.yml` (HelpCor/Hub/TMF9). - Rollback: reverter o merge na main. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn
feat(gates): versionCode Android crescente no PR (head vs base) [INFRA-68854]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 3m17s
f3904b95dc
Decisão do operador (08/10, INFRA-68856 Opção A): versionCode é gate de PR, movido da Fase 3
para a Fase 1. Passo novo no job gates (já no needs do ci-ok: sem job novo, sem mexer no
agregador nem nas REGRAS do avaliar_gate_final.py).

- scripts/conferir-version-code.sh: todos os app/build.gradle(.kts) versionados; barra versionCode
  menor que a base, versionName mudado sem subir o code e code não literal; release para main que
  muda o módulo sem subir = AVISO (medido: barraria HelpCor, Fina e tmf9 hoje); sem app = NÃO SE
  APLICA de dentro do passo (sai 0, nunca if: de job); base ilegível = reprova
- ci.yml: decisão versioncode no Gate (só em PR), zerada no modo nenhum, ci-shared buscado
- tests/version-code: 17 testes (origin bare + clone, inclusive raso) + amarração do workflow
- docs/guia-de-adocao.md: seção do gate

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WvS8ZjH9fTnKcnuWXPUyDm
chore(ci): pina tmf-ci-python na tag imutável 3.12-20261009-2e51884 [INFRA-68981]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 4m10s
42e4002bba
A tmf-ci-python:3.12 flutuante foi republicada 2x em 08/10 (uma delas sem
/usr/bin/python3, INFRA-68982). Os defaults de imagem do ci.yml/ci-base.yml e os
containers dos reusáveis passam para a imutável publicada pelo run 43421 do
tmf_imagens (sha256:e8b94a39150101bb8c03fac8710c44e555b17f280047c7ccecc79858c425bc2f),
conferida no registry com o contrato rodado. Nenhum chamador sobrescreve o input
com literal, então isto cobre todos os consumidores @main no próximo release.
Node, Trivy, Postgres e Redis seguem flutuantes até as imutáveis existirem.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn
chore(ci): pina node, trivy, postgres e redis nas tags imutáveis 20261009-2e51884 [INFRA-68981]
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 3m34s
dd471310ef
Tags publicadas pelos runs 43420/43441 do tmf_imagens (commit 2e51884), digests
conferidos pela sessão TMF Imagens:
- tmf-ci-node:20-20261009-2e51884 (sha256:942835be...)
- tmf-ci-trivy:0.68.2-db20261009-2e51884 (sha256:2f31aff9..., DB de 09/10)
- tmf-postgres-base:16-20261009-2e51884 (sha256:6a106846...)
- tmf-redis-base:7-20261009-2e51884 (sha256:c72f8b9d...)

O Trivy pinado congela o DB: vence pelo max_db_age_days (10 dias) e o pin precisa
ser renovado a cada rebuild semanal (issue própria). Pinar é a regra do padrão de
versionamento para gate de segurança: o falso verde de 08/10 veio de runners com
digests diferentes da mesma tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017QrAM1chSgVpSwDrKJVLVn
merge: origin/main -> release/2026-10-09-pins (traz o merge do #69; sem mudança de conteúdo)
All checks were successful
PR checks (ci-shared) / testes (pull_request) Successful in 3m37s
214846027e
tarcisio deleted branch release/2026-10-09-pins 2026-10-09 00:02:33 -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!73
No description provided.