jenkins #61

Merged
narenas merged 10 commits from jenkins into main 2025-09-02 16:59:57 +02:00
Collaborator

📦 Implementar extracción automática de versión desde CHANGELOG.md

🎯 Objetivo

Automatizar la extracción de la versión del proyecto desde el archivo CHANGELOG.md y su escritura al archivo src/VERSION durante el proceso de build, garantizando consistencia entre la documentación y el versionado del paquete.

🔧 Cambios realizados

Jenkinsfile-deb-pkg

  • Extracción automática de versión: Parsing del CHANGELOG.md para obtener la versión más reciente
  • Generación de src/VERSION: Escritura automática del archivo de versión requerido por el build
  • Soporte multi-branch: Funciona tanto para releases como para builds nightly
  • Validación robusta: Verificación de que la versión se extraiga correctamente
  • Compatibilidad: Mantiene el flujo existente del pipeline

🚀 Funcionalidades nuevas

1. Extracción de versión del CHANGELOG.md

  • Busca automáticamente líneas con formato ## [X.Y.Z] - YYYY-MM-DD
  • Extrae solo el número de versión (ej: 8.3.0)
  • Maneja versiones con sufijos adicionales

2. Generación automática de src/VERSION

  • Crea/actualiza el archivo src/VERSION con la versión extraída
  • Formato compatible con scripts existentes
  • Logging informativo del proceso

3. Pipeline robusto

  • Extracción antes de ejecutar src/update.py
  • Validación de que la versión se obtenga correctamente
  • Mantiene compatibilidad con el flujo existente

🧪 Testing

  • Probado con formato actual del CHANGELOG.md
  • Verificada escritura correcta de src/VERSION
  • Validado que no interfiere con el proceso de build existente
  • Confirmado funcionamiento en diferentes branches

📋 Beneficios

Automatización completa

  • Elimina la necesidad de actualizar manualmente src/VERSION
  • Reduce errores humanos en el versionado
  • Mantiene sincronización entre CHANGELOG.md y versión del build

Consistencia

  • Una sola fuente de verdad para la versión (CHANGELOG.md)
  • Formato estándar para todos los builds
  • Versionado automático coherente

Mantenibilidad

  • Menos pasos manuales en el proceso de release
  • Proceso predecible y repetible
  • Fácil debugging con logging informativo

🔄 Flujo resultante

  1. Pipeline inicia (por tag o push a main/jenkins)
  2. Extrae versión del CHANGELOG.md automáticamente
  3. Crea src/VERSION con formato requerido
  4. Ejecuta build con versión correcta
  5. Genera paquete con versionado consistente

📦 Impacto

Antes

  • Actualización manual de src/VERSION
  • Posibles inconsistencias entre CHANGELOG y versión
  • Proceso propenso a errores

Después

  • Extracción automática desde CHANGELOG.md
  • Consistencia garantizada
  • Proceso libre de errores manuales

🎯 Casos de uso

Releases (con TAG_NAME)

  • Versión extraída del CHANGELOG para paquetes estables
  • Publicación automática en repositorio opengnsys-devel

Nightly builds (rama main)

  • Misma versión base con sufijo nightly automático
  • Publicación automática en repositorio nightly

Development (rama jenkins)

  • Builds de desarrollo con versionado consistente
  • Testing de cambios antes de merge a main

🔧 Detalles del pipeline

Stages modificados

  • Build: Añadida extracción de versión antes de src/update.py
  • Compatibilidad: Mantiene integración con construirPaquete() y publicarEnAptly()

Branches soportados

  • main: Builds nightly con publicación automática
  • jenkins: Builds de desarrollo
  • Tags: Releases oficiales

Nota: Este cambio establece un flujo de trabajo más robusto y automatizado, eliminando la necesidad de sincronización manual entre documentación y versionado del código, mientras mantiene la compatibilidad total con la infraestructura existente de Jenkins

# 📦 Implementar extracción automática de versión desde CHANGELOG.md ## 🎯 Objetivo Automatizar la extracción de la versión del proyecto desde el archivo `CHANGELOG.md` y su escritura al archivo `src/VERSION` durante el proceso de build, garantizando consistencia entre la documentación y el versionado del paquete. ## 🔧 Cambios realizados ### **Jenkinsfile-deb-pkg** - ✅ **Extracción automática de versión**: Parsing del `CHANGELOG.md` para obtener la versión más reciente - ✅ **Generación de src/VERSION**: Escritura automática del archivo de versión requerido por el build - ✅ **Soporte multi-branch**: Funciona tanto para releases como para builds nightly - ✅ **Validación robusta**: Verificación de que la versión se extraiga correctamente - ✅ **Compatibilidad**: Mantiene el flujo existente del pipeline ## 🚀 Funcionalidades nuevas ### 1. **Extracción de versión del CHANGELOG.md** - Busca automáticamente líneas con formato `## [X.Y.Z] - YYYY-MM-DD` - Extrae solo el número de versión (ej: `8.3.0`) - Maneja versiones con sufijos adicionales ### 2. **Generación automática de src/VERSION** - Crea/actualiza el archivo `src/VERSION` con la versión extraída - Formato compatible con scripts existentes - Logging informativo del proceso ### 3. **Pipeline robusto** - Extracción antes de ejecutar `src/update.py` - Validación de que la versión se obtenga correctamente - Mantiene compatibilidad con el flujo existente ## 🧪 Testing - ✅ Probado con formato actual del CHANGELOG.md - ✅ Verificada escritura correcta de src/VERSION - ✅ Validado que no interfiere con el proceso de build existente - ✅ Confirmado funcionamiento en diferentes branches ## 📋 Beneficios ### ✅ **Automatización completa** - Elimina la necesidad de actualizar manualmente src/VERSION - Reduce errores humanos en el versionado - Mantiene sincronización entre CHANGELOG.md y versión del build ### ✅ **Consistencia** - Una sola fuente de verdad para la versión (CHANGELOG.md) - Formato estándar para todos los builds - Versionado automático coherente ### ✅ **Mantenibilidad** - Menos pasos manuales en el proceso de release - Proceso predecible y repetible - Fácil debugging con logging informativo ## 🔄 Flujo resultante 1. **Pipeline inicia** (por tag o push a main/jenkins) 2. **Extrae versión** del CHANGELOG.md automáticamente 3. **Crea src/VERSION** con formato requerido 4. **Ejecuta build** con versión correcta 5. **Genera paquete** con versionado consistente ## 📦 Impacto ### Antes - Actualización manual de src/VERSION - Posibles inconsistencias entre CHANGELOG y versión - Proceso propenso a errores ### Después - ✅ Extracción automática desde CHANGELOG.md - ✅ Consistencia garantizada - ✅ Proceso libre de errores manuales ## 🎯 Casos de uso ### **Releases (con TAG_NAME)** - Versión extraída del CHANGELOG para paquetes estables - Publicación automática en repositorio `opengnsys-devel` ### **Nightly builds (rama main)** - Misma versión base con sufijo nightly automático - Publicación automática en repositorio `nightly` ### **Development (rama jenkins)** - Builds de desarrollo con versionado consistente - Testing de cambios antes de merge a main ## 🔧 Detalles del pipeline ### Stages modificados - **Build**: Añadida extracción de versión antes de `src/update.py` - **Compatibilidad**: Mantiene integración con `construirPaquete()` y `publicarEnAptly()` ### Branches soportados - `main`: Builds nightly con publicación automática - `jenkins`: Builds de desarrollo - Tags: Releases oficiales --- **Nota**: Este cambio establece un flujo de trabajo más robusto y automatizado, eliminando la necesidad de sincronización manual entre documentación y versionado del código, mientras mantiene la compatibilidad total con la infraestructura existente de Jenkins
narenas added 10 commits 2025-09-02 16:59:36 +02:00
ogagent/pipeline/head There was a failure building this commit Details
36748e719d
First Version of auto-package refs #2649
ogagent/pipeline/head There was a failure building this commit Details
e3fed976e6
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
7599e91986
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
a27ed86d0d
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
6875042372
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
468d9db14f
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
4694bf6cdd
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
9c34720d51
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head There was a failure building this commit Details
97a9818e15
refs #2659 Adds jenkins branch for testing
ogagent/pipeline/head This commit looks good Details
e4057b4f18
refs #2659 Adds jenkins branch for testing
narenas merged commit 8ee4afa1cb into main 2025-09-02 16:59:57 +02:00
narenas deleted branch jenkins 2025-09-02 16:59:57 +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/ogagent#61
There is no content yet.