Reusable workflows para Forgejo Actions across TMF projects
  • Python 85.8%
  • Shell 11.1%
  • Dockerfile 3.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-04 11:00:05 -03:00
.claude chore(config): issue_modules=["ci"] — o loop só vê o módulo ci da fila infra [INFRA-69084] 2026-10-09 16:22:16 -03:00
.forgejo/workflows Merge pull request 'ci: runner-smoke — teste de fumaça de runner por rótulo [INFRA-71329]' (#168) from chore/runner-smoke into develop 2026-11-04 11:00:05 -03:00
actions Merge main em feat/deploy-ssh-host-verificado: README com as duas seções [INFRA-66854] 2026-09-30 08:57:24 -03:00
ci-images fix(ci-images): remove o build-ci-images.yml do ci-shared [INFRA-70488] 2026-10-17 14:52:54 -03:00
constraints docs(constraints): cabeçalho diz o alcance — uv com lock ignora a lista; só pip legado é barrado [TMF9-69150] 2026-10-09 21:04:53 -03:00
docs fix(release): guardas de ref, dispatch_branch, infisical_host e ref do ci-shared no fechar-release.yml [INFRA-71902] 2026-11-04 00:23:54 -03:00
schemas feat(ci-config): bloco release: com a config de provedor do fechar release [TMFP-65899] 2026-11-03 09:14:38 -03:00
scripts feat(release): workflow reutilizável fechar-release.yml e template do chamador [INFRA-71902] 2026-11-04 00:17:54 -03:00
templates fix(release): guardas de ref, dispatch_branch, infisical_host e ref do ci-shared no fechar-release.yml [INFRA-71902] 2026-11-04 00:23:54 -03:00
tests fix(release): ref do ci-shared sem fallback e allowlist do infisical_host no release.yml [INFRA-71909] 2026-11-04 03:03:28 -03:00
.gitignore chore(graft): /graft/ no .gitignore e .ignore versionado (INFRA-69342) 2026-10-10 19:43:08 -03:00
.ignore chore(graft): /graft/ no .gitignore e .ignore versionado (INFRA-69342) 2026-10-10 19:43:08 -03:00
CHANGELOG.md fix(release): ref do ci-shared sem fallback e allowlist do infisical_host no release.yml [INFRA-71909] 2026-11-04 03:03:28 -03:00
README.md docs(readme): exceção nomeada — PR semanal do pin do Trivy direto para a main [INFRA-69010] 2026-10-09 17:13:42 -03:00
VERSION chore(release): v0.9.0 2026-10-27 19:30:30 -03:00

TMF CI-Shared

Reusable Forgejo Actions workflows para reduzir duplicação de código CI/CD across 6 projetos.

Documentação

Este repositório é a fonte única RUNTIME dos workflows e actions de CI/CD que os 6 produtos da frota chamam. A documentação foi fatiada em docs/:

Documento O que cobre
Workflows e actions reusáveis catálogo de cada workflow/action (install-docker, smoke-test-health, hub-issue-sync, deploy-ssh, reusable-sbom…) e os nomes canônicos da frota
Guia de adoção como um produto adota o CI/release/deploy único: chamador idêntico, ci-config.yml, branch protection, segredos, exemplo completo
Scripts e automações de deploy scripts de scripts/, router blue-green + rollback, teste local de workflow, apêndice nginx
Runbook de CI vermelho regras anti-verde-falso ao escrever/chamar reusable e a fila de CI
Migração ci-base → ci.yml playbook para Hub/HelpCor/Fina saírem do reusável legado para o CI único (mapa dos jobs ao lado → ci-config.yml)

Standards/ADRs canônicos vivem no acervo TMF/ORG.

Fluxo de branches (e a única exceção)

develop é o trunk; main só recebe o release develop→main, aberto pelo /deploy-safe e mergeado pelo operador. Os produtos consomem os reusáveis por @main, então o que não passou pela main não chegou à frota.

Exceção nomeada: PR semanal do pin do Trivy direto para a main (decisão do operador, 09/10/2026). O gate de CVE da frota reprova DB do Trivy com mais de 10 dias, e esperar o release seguinte deixaria os produtos com a base vencida. O PR só vale como exceção se cumprir todos os itens:

  • título começando por chore(trivy): pin, aberto pelo propor-pin-trivy do TMF/tmf_imagens;
  • branch chore/pin-trivy-*;
  • só troca a tag tmf-ci-trivy:<versão>-db<data>-<sha> nos workflows que a fixam (hoje ci.yml, ci-base.yml, reusable-trivy-scan.yml, reusable-image-cve-os.yml); qualquer outra mudança volta para o fluxo normal;
  • o mesmo commit vai em dois PRs, um para a develop e outro para a main. Por ser o mesmo commit, o próximo release develop→main não conflita;
  • CI verde e aprovação humana, como qualquer PR para a main.

Fora disso, PR para a main é release ou hotfix (fix/*, ADR 0014 D10).

Projetos Consumidores (6 projetos)

Projeto Prefixo URL
TMF9 TMF9 git.trademarketingforce.com/TMF/tmf9
TMF Management TH git.trademarketingforce.com/tarcisio/tmf-management
DANI DAI git.trademarketingforce.com/tarcisio/dani
Fina FINA git.trademarketingforce.com/tarcisio/fina
HelpCor HCOR git.trademarketingforce.com/tarcisio/helpcor-admin
HelpCor Backend CE git.trademarketingforce.com/tarcisio/helpcor-backend

Histórico

  • TH-54337: Criação inicial (4 workflows)
  • TH-54330: Story parent (padronizar CI/CD em 6 projetos)
  • INFRA-66873: hub-issue-sync.yml reusável (substitui as cópias de Fina, Priceshow, tennis-tracking, tmf-platform)

Licença

Trade Marketing Force © 2026