Repository navigation
[DX-3326] Release automático de fintoc-node al mergear PRs con label release:* - #114
Merged
pibahamondesw merged 4 commits intoNov 7, 2026
Conversation
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 6, 2026 13:33
8f55983 to
7cc3fb2
Compare
Contributor
Author
|
fin review |
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 6, 2026 13:37
7cc3fb2 to
6b84e60
Compare
Contributor
Author
|
fin review |
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 6, 2026 13:40
6b84e60 to
dc67dc1
Compare
Contributor
Author
|
fin review |
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 6, 2026 13:49
dc67dc1 to
f835dee
Compare
Contributor
Author
|
fin review |
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 7, 2026 02:53
f835dee to
27b11a8
Compare
Contributor
Author
|
fin review |
pibahamondesw
force-pushed
the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
from
November 7, 2026 02:58
27b11a8 to
19f42ab
Compare
Contributor
Author
|
fin review |
pibahamondesw
marked this pull request as ready for review
November 7, 2026 03:11
pibahamondesw
deleted the
dx-3326-release-automatico-de-fintoc-node-al-mergear-prs-con-label
branch
November 7, 2026 03:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Hoy los SDK solo se publican corriendo a mano el workflow
release(workflow_dispatch). Compose no puede dispararlo sinactions: write, permiso que no le damos a propósito. Con este cambio el release corre solo al mergear amasterun PR con labelrelease:*. Es el mismo diseño que va en fintoc-ruby, fintoc-python y fintoc-cli;resolve-release.shy sus tests son los mismos de fintoc-com/fintoc-ruby#47 (DX-3326).releasetambién corre en push amaster. Elworkflow_dispatchqueda igual, como respaldo manual.resolvedecide el bump y las notas:release:patch|minor|major.releasequeda skipped, no falla. Esto también cubre el commit de versión que empujaprepare.release:*o un label desconocido, falla con un mensaje claro.## Release notesdel PR, sin comentarios HTML.releases/generate-notes).releasetieneconcurrency(sincancel-in-progress), así que nunca hay dos releases en paralelo.prepareusapush: 'true'([DX-3359] Empujar commit y tag de forma atómica antes de publicar en release-action release-action#3): empuja el commit de versión y el tag amasterde forma atómica antes denpm publish, yfinalizesolo crea el GitHub Release. Simasteravanzó, el release falla sin publicar nada.releasehace checkout demastery no degithub.sha. En push, simastertiene commits posteriores al PR mergeado (aparte de losrelease: ...defin-releases[bot]), falla antes de publicar. Así no salen los cambios de otro PR con el bump y las notas de este; esos cambios van en el siguiente release, o por el manual si necesitan un bump mayor.resolvecorre en Blacksmith (blacksmith-2vcpu-ubuntu-2404). El jobreleasesigue enubuntu-24.04(ver Consideraciones).## Release notes.Tests:
.github/scripts/resolve-release.test.shcorre en CI (workflowrelease-scripts, solo cuando cambian los scripts) y cubre: notas al final, notas seguidas de otra sección, solo un comentario, sin sección, sin label, dos labels, label desconocido, PR no mergeado, y dispatch con y sin notas.release: v1.31.0(sin PR) se saltan.actionlintyshellchecksin errores (salvo el label de Blacksmith, que actionlint no conoce).Release notes
Requirements
Antes de mergear, crear en el repo los labels
release:patch,release:minoryrelease:major.Additional changes
RELEASING.mdyAGENTS.mddocumentan el release automático y qué pasa con merges encadenados.Consideraciones
release:patch,release:minoryrelease:major.releaseno se movió a Blacksmith: npm solo acepta trusted publishing (OIDC y provenance) desde runners cloud de GitHub, y Blacksmith cuenta como self-hosted, así quenpm publishfallaría con E422 (docs de npm). El jobresolvesí corre en Blacksmith.concurrencyva en el jobreleasey no en el workflow, porque GitHub cancela los runs pendientes del grupo aunquecancel-in-progressseafalse. Si fuera a nivel de workflow, un run que no publica (el commit de versión o un PR sin label) podría cancelar un release encolado. Igual, si se encolan dos releases detrás de uno en curso, GitHub deja solo el más reciente.merge_commit_sha == github.shay ya mergeado:commits/{sha}/pullstambién devuelve PRs abiertos que contienen el commit.npm publish. Si esa llamada falla, no se publica nada.releasey falla con un mensaje claro. Si alguien mergea amasterdurante el release, el push atómico depreparese rechaza antes de publicar. Ya no puede quedar un paquete publicado sin commit ni tag, ni un tag huérfano. Si algo falla después del push (las notas autogeneradas onpm publish), quedan commit y tag enmastersin paquete;RELEASING.mdexplica cómo recuperarlo..github/pull_request_template.md, que es el template por defecto.PULL_REQUEST_TEMPLATE/release.mdsolo aplica con?template=release.md, y es el template antiguo de los PR de release manuales.Rollback
¿Es seguro hacer rollback? Sí
¿Cuáles son los pasos para hacer rollback? Revert PR