120 lines
4.1 KiB
Plaintext
120 lines
4.1 KiB
Plaintext
@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')
|
|
}
|
|
}
|
|
}
|