📦 Implementar empaquetado automático con versionado desde changelog de Debian #8

Merged
narenas merged 4 commits from fix_upload into main 2025-09-02 14:21:48 +02:00
Collaborator

🎯 Objetivo

Automatizar la generación de paquetes Debian con versionado correcto basado en el changelog de Debian, siguiendo las convenciones estándar de empaquetado.

🔧 Cambios realizados

Jenkinsfile

  • Generación automática de changelog: Integración con la librería compartida para generar changelog de Debian
  • Soporte multi-branch: Generación de versiones nightly para ramas main y fix_upload
  • Verificaciones de integridad: Stages de verificación para validar el changelog generado
  • Upload dinámico: Detección automática del nombre del paquete generado
  • Mejor logging: Mensajes informativos en cada stage para facilitar debugging

CMakeLists.txt (src/)

  • Parsing automático de changelog: Extracción de versión desde debian/changelog
  • Configuración de CPack: Variables de versión configuradas automáticamente
  • Nomenclatura estándar: Nombres de paquete siguiendo convenciones Debian (ogbrowser_2.1.0+123~nightly-1_amd64.deb)
  • Inclusión de changelog: El changelog se incluye automáticamente en el paquete generado
  • Compatibilidad: Fallback a versiones por defecto si no hay changelog

🚀 Funcionalidades nuevas

1. Versionado automático

  • Para releases: Usa la versión del tag
  • Para nightly: Genera versión con sufijo ~nightly

2. Empaquetado mejorado

  • Nombres de archivo con versión completa de Debian
  • Changelog incluido en metadatos del paquete
  • Validación de formato de versión según regex de Debian

3. Pipeline robusto

  • Verificaciones en cada stage
  • Manejo de errores mejorado
  • Upload automático con detección de nombre

🧪 Testing

  • Probado manualmente en entorno local
  • Verificada inclusión de changelog en paquete
  • Validado formato de versión según estándares Debian
  • Confirmada generación correcta de nombres de archivo

📋 Checklist

  • CMakeLists.txt configurado para parsear changelog
  • Jenkinsfile actualizado con nuevos stages
  • Verificaciones de integridad implementadas
  • Upload dinámico funcionando
  • Documentación actualizada (este PR)

🔄 Flujo resultante

  1. Trigger: Push a main/fix_upload o creación de tag
  2. Generación: Changelog automático con versión apropiada
  3. Build: CMake extrae versión y configura CPack
  4. Empaquetado: Paquete Debian con nombre estándar
  5. Upload: Subida automática a repositorio Aptly

📦 Resultado esperado

  • Nightly: ogbrowser_2.1.0+123~nightly-1_amd64.deb
  • Release: ogbrowser_2.1.0-1_amd64.deb

🔧 Detalles técnicos

Stages del pipeline

  • Prepare environment: Configuración inicial del workspace
  • Install Dependencies: Instalación de herramientas de build
  • Generate Changelog: Generación para releases (con tag)
  • Generate Changelog (Nightly): Generación para branches main y fix_upload
  • Verify Changelog: Verificación de que el changelog se generó correctamente
  • Build: Compilación con CMake y Ninja
  • Create package: Generación del paquete Debian con CPack
  • Upload package: Subida automática a repositorio Aptly

Configuración CMake

  • Parsing automático de debian/changelog
  • Extracción de versión con regex
  • Configuración de variables CPack
  • Inclusión del changelog en el paquete final
## 🎯 Objetivo Automatizar la generación de paquetes Debian con versionado correcto basado en el changelog de Debian, siguiendo las convenciones estándar de empaquetado. ## 🔧 Cambios realizados ### **Jenkinsfile** - ✅ **Generación automática de changelog**: Integración con la librería compartida para generar changelog de Debian - ✅ **Soporte multi-branch**: Generación de versiones nightly para ramas `main` y `fix_upload` - ✅ **Verificaciones de integridad**: Stages de verificación para validar el changelog generado - ✅ **Upload dinámico**: Detección automática del nombre del paquete generado - ✅ **Mejor logging**: Mensajes informativos en cada stage para facilitar debugging ### **CMakeLists.txt (`src/`)** - ✅ **Parsing automático de changelog**: Extracción de versión desde `debian/changelog` - ✅ **Configuración de CPack**: Variables de versión configuradas automáticamente - ✅ **Nomenclatura estándar**: Nombres de paquete siguiendo convenciones Debian (`ogbrowser_2.1.0+123~nightly-1_amd64.deb`) - ✅ **Inclusión de changelog**: El changelog se incluye automáticamente en el paquete generado - ✅ **Compatibilidad**: Fallback a versiones por defecto si no hay changelog ## 🚀 Funcionalidades nuevas ### 1. **Versionado automático** - **Para releases**: Usa la versión del tag - **Para nightly**: Genera versión con sufijo `~nightly` ### 2. **Empaquetado mejorado** - Nombres de archivo con versión completa de Debian - Changelog incluido en metadatos del paquete - Validación de formato de versión según regex de Debian ### 3. **Pipeline robusto** - Verificaciones en cada stage - Manejo de errores mejorado - Upload automático con detección de nombre ## 🧪 Testing - ✅ Probado manualmente en entorno local - ✅ Verificada inclusión de changelog en paquete - ✅ Validado formato de versión según estándares Debian - ✅ Confirmada generación correcta de nombres de archivo ## 📋 Checklist - [x] CMakeLists.txt configurado para parsear changelog - [x] Jenkinsfile actualizado con nuevos stages - [x] Verificaciones de integridad implementadas - [x] Upload dinámico funcionando - [x] Documentación actualizada (este PR) ## 🔄 Flujo resultante 1. **Trigger**: Push a `main`/`fix_upload` o creación de tag 2. **Generación**: Changelog automático con versión apropiada 3. **Build**: CMake extrae versión y configura CPack 4. **Empaquetado**: Paquete Debian con nombre estándar 5. **Upload**: Subida automática a repositorio Aptly ## 📦 Resultado esperado - **Nightly**: `ogbrowser_2.1.0+123~nightly-1_amd64.deb` - **Release**: `ogbrowser_2.1.0-1_amd64.deb` ## 🔧 Detalles técnicos ### Stages del pipeline - **Prepare environment**: Configuración inicial del workspace - **Install Dependencies**: Instalación de herramientas de build - **Generate Changelog**: Generación para releases (con tag) - **Generate Changelog (Nightly)**: Generación para branches `main` y `fix_upload` - **Verify Changelog**: Verificación de que el changelog se generó correctamente - **Build**: Compilación con CMake y Ninja - **Create package**: Generación del paquete Debian con CPack - **Upload package**: Subida automática a repositorio Aptly ### Configuración CMake - Parsing automático de `debian/changelog` - Extracción de versión con regex - Configuración de variables CPack - Inclusión del changelog en el paquete final
narenas added 4 commits 2025-09-02 14:19:26 +02:00
narenas merged commit b799036d70 into main 2025-09-02 14:21:48 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
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: opengnsys/ogbrowser#8
There is no content yet.