pipelines example create crear groovy jenkins-workflow jenkins-pipeline jenkinsfile

groovy - example - jenkins pipeline wiki



try/catch/finally enmascara los problemas de Jenkinsfile en caso de que existan excepcionales excepciones en el compilador (1)

Tengo un código similar al de abajo en mi archivo Jenkins:

node { checkout scm // do some stuff try { // do some maven magic } catch (error) { stage "Cleanup after fail" emailext attachLog: true, body: "Build failed (see ${env.BUILD_URL}): ${error}", subject: "[JENKINS] ${env.JOB_NAME} failed", to: ''[email protected]'' throw error } finally { step $class: ''JUnitResultArchiver'', testResults: ''**/TEST-*.xml'' } }

Si el código anterior falla debido a algunos errores relacionados con jenkins-pipeline en el try { } (por ejemplo, utilizando un método estático no aprobado), la secuencia de comandos falla silenciosamente. Cuando elimino el try / catch / finalmente puedo ver los errores. ¿Estoy haciendo algo mal? ¿No debería el error reenvío hacer que aparezcan los errores de la tubería en el registro?

EDITAR: Me las arreglé para resolver el problema con la sintaxis del groovy, cuando, por ejemplo, uso una variable que aún no ha sido asignada. Ejemplo: echo foo Si foo no se declara / asigna en ningún lugar, Jenkins fallará en la compilación y no mostrará la razón si está dentro de try / catch / finally, que vuelve a anular la excepción.


Esto sucede cuando se lanza una excepción adicional dentro del bloque final o antes de volver a lanzar la catch interna. En estos casos, la RejectedAccessException se traga y el script-security no lo detecta.