@Library('jenkins-shared-library') _ pipeline { agent { label 'jenkins-slave' } environment { DEBIAN_FRONTEND = 'noninteractive' DEFAULT_DEV_NAME = 'Opengnsys Team' DEFAULT_DEV_EMAIL = 'opengnsys@qindel.com' } options { skipDefaultCheckout() } parameters { string(name: 'DEV_NAME', defaultValue: '', description: 'Nombre del desarrollador') string(name: 'DEV_EMAIL', defaultValue: '', description: 'Email del desarrollador') } stages { stage('Prepare Workspace') { steps { script { env.BUILD_DIR = "${WORKSPACE}/ogagent" sh "mkdir -p ${env.BUILD_DIR}" sh "mkdir -p ${env.BUILD_DIR}/debian" } } } stage('Checkout') { steps { dir("${env.BUILD_DIR}") { checkout scm } } } stage('Generate Changelog') { when { expression { return env.TAG_NAME != null } } steps { script { def devName = params.DEV_NAME ? params.DEV_NAME : env.DEFAULT_DEV_NAME def devEmail = params.DEV_EMAIL ? params.DEV_EMAIL : env.DEFAULT_DEV_EMAIL generateDebianChangelog(env.BUILD_DIR, devName, devEmail) sh "cp ${env.BUILD_DIR}/debian/changelog ${env.BUILD_DIR}/linux/debian/" } } } stage('Generate Changelog (Nightly)'){ when { anyOf { branch 'main' branch 'jenkins' } } steps { script { def devName = params.DEV_NAME ? params.DEV_NAME : env.DEFAULT_DEV_NAME def devEmail = params.DEV_EMAIL ? params.DEV_EMAIL : env.DEFAULT_DEV_EMAIL generateDebianChangelog(env.BUILD_DIR, devName, devEmail,'nightly') sh "cp ${env.BUILD_DIR}/debian/changelog ${env.BUILD_DIR}/linux/debian/" } } } stage('Build') { steps { dir ("${env.BUILD_DIR}") { script { sh ''' V=$(grep -E "^## \\[[0-9]+\\.[0-9]+\\.[0-9]+" CHANGELOG.md | head -1 | \ cut -d'[' -f2 | cut -d']' -f1) echo "V=$V" >src/VERSION echo "Versión extraída: $V" src/update.py git checkout -- src/about-dialog.ui src/opengnsys/__init__.py ''' construirPaquete("${env.BUILD_DIR}/linux", "../artifacts", "172.17.8.68", "/var/tmp/opengnsys/debian-repo/ogagent") } } } } stage ('Publish to Debian Repository') { when { expression { return env.TAG_NAME != null } } agent { label 'debian-repo' } steps { script { // Construir el patrón de versión esperado en el nombre del paquete def versionPattern = "${env.TAG_NAME}-${env.BUILD_NUMBER}" publicarEnAptly('/var/tmp/opengnsys/debian-repo/ogagent', 'opengnsys-devel', versionPattern) } } } stage ('Publish to Debian Repository (Nightly)') { when { branch 'main' } agent { label 'debian-repo' } steps { script { // Construir el patrón de versión esperado en el nombre del paquete def versionPattern = "-${env.BUILD_NUMBER}~nightly" publicarEnAptly('/var/tmp/opengnsys/debian-repo/ogagent', 'nightly', versionPattern) } } } } post { always { notifyBuildStatus('narenas@qindel.com') } } }