Flujo de publicación (Estándar TinyCorn Studio)
Aplicar cuando el usuario diga: "release", "publicar vX.Y.Z", "subir nueva versión a git", "construir instalador + release". Ejecutar todo el flujo, no preguntar cada paso a menos que se detecte alguna anomalía.
Requisitos previos
- El repositorio tiene
CHANGELOG.md(Keep a Changelog) con una entrada## [<versión>] - <fecha>para la versión que se va a publicar. - El repositorio tiene un script para construir el instalador (normalmente
make-app.shcon la variableVERSION). ghha iniciado sesión con permisosrepo.- El árbol de trabajo está limpio (todas las funcionalidades han sido commiteadas).
Pasos
1. Aumentar versión (una única fuente)
sed -i '' -E 's/^(VERSION=).*/\1"0.5.0"/' make-app.sh
2. Construir instalador
./make-app.sh
ls -lh dist/
3. Actualizar CHANGELOG.md
Añadir una nueva entrada al principio (siguiendo Keep a Changelog):
## [0.5.0] - 2026-10-18
### Added
- ...
### Fixed
- ...
4. Commit
git add -A
git commit -m "Release v0.5.0"
5. Fusionar a main (si se está en una rama de funcionalidad)
git checkout main && git merge --ff-only <rama-de-funcionalidad>
6. Etiquetar anotada + hacer push
git tag -a v0.5.0 -m "v0.5.0"
git push origin main --tags
7. Crear GitHub Release con el instalador adjunto
Escribir las notas de la versión en vietnamita (resumen + sección "Novedades" + "Instalación"), guardarlas en un archivo temporal, y luego:
gh release create v0.5.0 dist/<App>-0.5.0.dmg \
--title "v0.5.0 — <resumen>" \
--notes-file /tmp/release_notes_v0.5.0.md
8. Verificar
gh release view v0.5.0
Comprobar: la etiqueta apunta al commit correcto, el asset se ha subido, las notas se muestran correctamente.
Script de automatización
Este repositorio incluye scripts/release.sh que ejecuta los pasos 1→7 para herramientas macOS que usen make-app.sh:
./scripts/release.sh 0.5.0
Reglas
- NO commitees archivos de instalación (DMG, ZIP) en el repositorio — solo se adjuntan a GitHub Releases.
dist/debe estar en.gitignore. - CHANGELOG y README deben actualizarse en el mismo release.
- La etiqueta siempre es una etiqueta anotada, con formato
vX.Y.Z(SemVer). - Las notas de la versión están en vietnamita e incluyen una sección de instrucciones para abrir la app si no está firmada (clic derecho → Abrir).
- Si el push falla con 403: verificar
gh auth status, ejecutargh auth setup-git, confirmar que el token tiene permisos sobre la organización.