tutorial steps example español jenkins jenkins-pipeline

steps - Establezca el nombre y la descripción de la compilación desde un Oleoducto declarativo de Jenkins



jenkins pipeline tutorial español (2)

Me gustaría establecer el nombre y la descripción de la compilación a partir de un Oleoducto declarativo de Jenkins, pero no puedo encontrar la forma correcta de hacerlo. Intenté usar un soporte de entorno después de la canalización, usando un soporte de nodo en un soporte de agente, etc. Siempre obtengo un error de sintaxis.

La última versión de mi archivo Jenkins es así:

pipeline { stages { stage("Build") { steps { echo "Building application..." bat "%ANT_HOME%/bin/ant.bat clean compile" currentBuild.name = "MY_VERSION_NUMBER" currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER" } } stage("Unit Tests") { steps { echo "Testing (JUnit)..." echo "Testing (pitest)..." bat "%ANT_HOME%/bin/ant.bat run-unit-tests" } } stage("Functional Test") { steps { echo "Selenium..." } } stage("Performance Test") { steps { echo "JMeter.." } } stage("Quality Analysis") { steps { echo "Running SonarQube..." bat "%ANT_HOME%/bin/ant.bat run-sonarqube-analysis" } } stage("Security Assessment") { steps { echo "ZAP..." } } stage("Approval") { steps { echo "Approval by a CS03" } } stage("Deploy") { steps { echo "Deploying..." } } } post { always { junit ''/test/reports/*.xml'' } failure { emailext attachLog: true, body: '''', compressLog: true, recipientProviders: [[$class: ''CulpritsRecipientProvider''], [$class: ''DevelopersRecipientProvider'']], subject: ''[JENKINS] MY_PROJECT build failed'', to: ''...recipients...'' } success { emailext attachLog: false, body: '''', compressLog: false, recipientProviders: [[$class: ''DevelopersRecipientProvider'']], subject: ''[JENKINS] MY_PROJECT build succeeded'', to: ''...recipients...'' } } }

Error es:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 11: Expected a step @ line 11, column 5. currentBuild.name = "MY_VERSION_NUMBER" ^ WorkflowScript: 12: Expected a step @ line 12, column 5. currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER" ^

Idealmente, me gustaría poder leer MY_PROJECT y MY_VERSION_NUMBER desde el archivo build.properties, o desde el registro de compilación de Jenkins. Cualquier orientación sobre ese requisito también sería apreciada.

ACTUALIZAR

Basado en la respuesta que tenía a continuación, lo siguiente funcionó:

stage("Build") { steps { echo "Building application..." bat "%ANT_HOME%/bin/ant.bat clean compile" script { def props = readProperties file: ''build.properties'' currentBuild.displayName = "v" + props[''application.version''] } }

Ahora la versión de compilación se configura automáticamente durante la canalización leyendo el archivo build.properties.


Creo que esto hará lo que quieras. Pude hacerlo dentro de un bloque de script :

pipeline { stages { stage("Build"){ steps { script { currentBuild.displayName = "The name." currentBuild.description = "The best description." } ... do whatever. } } } }

El script es una especie de escotilla de escape para salir de una tubería declarativa. Probablemente hay una manera declarativa de hacerlo, pero no pude encontrarlo. Y una nota más. Creo que quieres currentBuild.displayName lugar de currentBuild.name En la documentación de los globales de Jenkins no vi una propiedad de nombre en currentBuild.


Si desea establecer el nombre de compilación para un trabajo a partir de un parámetro, puede usar

currentBuild.displayName = "${nameOfYourParameter}" . Asegúrese de usar comillas dobles en lugar de comillas simples .

Configuración de trabajo

Construir trabajo con parámetro

Construir historia

REFERENCIA: ¿Cómo establecer el nombre de compilación en el trabajo de Canalización?