Skip to content

feat(ci): sincroniza workflows com o template do tooling#7

Merged
rlueder merged 1 commit into
mainfrom
feat/sync-workflows
May 13, 2026
Merged

feat(ci): sincroniza workflows com o template do tooling#7
rlueder merged 1 commit into
mainfrom
feat/sync-workflows

Conversation

@rlueder
Copy link
Copy Markdown
Member

@rlueder rlueder commented May 13, 2026

Resumo

Sincroniza byte-a-byte os 6 workflows reutilizáveis com o template canônico do `tooling`. O pns estava em uma versão antiga dos workflows; isso explica por que os release cycles vinham falhando silenciosamente desde o início.

Mudanças

  • `pnpm/action-setup@v4` → `@v5` (Node 24, tooling#30)
  • `_publish.yml` declara `environment: npm-publish` (tooling#31)
  • `ci.yml` adota a forma documentada com section comments
  • `publish-tag.yml`, `_checks.yml`, `doctor.yml`, `review.yml` sincronizados

Único trecho repo-específico: `ci.yml#publish.packages` aponta para `packages/pns-core`.

Por que como `feat:` e não `chore:`

Quero que esse merge dispare um release cycle real — o primeiro com a config completa (`.releaserc.cjs` do PR #6 + workflows atualizados). Vai bumpar para `1.3.0` (minor sobre `v1.2.0`) e publicar pela primeira vez no npm com a tabela Brasil já incluída.

Test plan

  • CI verde
  • Após merge: semantic-release commita `chore(release): 1.3.0 [skip ci]`, `_publish.yml` publica
  • `npm view @precisa-saude/pns version` → `1.3.0`

Os workflows do pns estavam desatualizados em relação ao template canônico
do `tooling`. Isso causou três release cycles silenciosamente quebrados —
o último (PR #6) nem disparou o `push` event nos Actions, possivelmente
por divergência entre o `concurrency` config ou triggers que evoluíram.

Mudanças trazidas do tooling:

- `pnpm/action-setup@v4` → `@v5` em `_publish.yml` e `_release.yml`
  (Node.js 24, mesmo bump aplicado em PR #30 do tooling).
- `_publish.yml` agora declara `environment: npm-publish`, que serve de
  human-in-the-loop gate (informacional se nenhum reviewer estiver
  configurado, bloqueante se houver). PR #31 do tooling adicionou isso
  como pattern do ecossistema.
- `ci.yml` adota a forma documentada do orquestrador, com section comments
  e referência ao `.precisa.json` para customização por repo.
- `publish-tag.yml`, `_checks.yml`, `doctor.yml`, `review.yml`: sincronizados
  byte-a-byte com o template.

Customização específica do pns: `ci.yml` aponta `publish.packages` para
`packages/pns-core` (o único publicável; `pns-archive` é privado).
@rlueder rlueder merged commit c9b5b55 into main May 13, 2026
10 checks passed
@rlueder rlueder deleted the feat/sync-workflows branch May 13, 2026 15:58
rlueder added a commit that referenced this pull request May 13, 2026
O guard `require_package_changes: true` pulava o release sempre que um
PR mexia apenas em `.github/**` ou na config (era o caso de PR #6 e #7).
Como `@semantic-release/git` só commita o bump de versão de volta no
`main` quando o release roda, três PRs (#3, #4, #5) materializaram tags
git mas nunca chegaram a publicar no npm. Cada novo PR de config para
arrumar isso era também guarded out.

pns só tem um pacote publicável (`pns-core`); o overhead de release no-op
sobre mudanças de workflow é insignificante, e o custo de release pulado
silenciosamente é alto. Setando o input para `false` no call do
\`_release.yml\`. Outros repos com vários pacotes publicáveis podem
manter o guard ativo.
precisa-saude-release-bot Bot pushed a commit that referenced this pull request May 13, 2026
## [1.3.0](v1.2.0...v1.3.0) (2026-05-13)

### Features

* **ci:** sincroniza workflows com o template do tooling ([#7](#7)) ([c9b5b55](c9b5b55)), closes [#6](#6) [#30](https://github.com/Precisa-Saude/pns/issues/30) [#31](https://github.com/Precisa-Saude/pns/issues/31)

### Bug Fixes

* **ci:** adiciona .releaserc.cjs para que semantic-release commite o bump de versão ([#6](#6)) ([019e7ea](019e7ea)), closes [#3](#3) [#4](#4) [#5](#5)
* **ci:** desabilita o guard require_package_changes no release job ([#8](#8)) ([27e287a](27e287a)), closes [#6](#6) [#7](#7) [#3](#3) [#4](#4) [#5](#5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant