108 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.3 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}/oggui"
 | |
|                     sh "mkdir -p ${env.BUILD_DIR}"
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         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)
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         stage('Generate Changelog (Nightly)'){
 | |
|             when {
 | |
|                 branch 'main'
 | |
|             }
 | |
|             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")
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         stage('Build') {
 | |
|             steps {
 | |
|                 script {
 | |
|                     construirPaquete(env.BUILD_DIR, "../artifacts", "172.17.8.68", "/var/tmp/opengnsys/debian-repo/oggui")
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         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/oggui', '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/oggui', 'nightly', versionPattern)
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     post {
 | |
|         always {
 | |
|             notifyBuildStatus('narenas@qindel.com')
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 |