Ich habe Code ähnlich die unten in meinem Jenkinsfile:try/catch/finally Masken Jenkinsfile Probleme bei groovy Compiler Ausnahmen
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'
}
}
Wenn der obige Code wegen einiger jenkins-Pipeline Fehler nicht in Das try { }
(z. B. mit nicht genehmigte statische Methode) das Skript schlägt im Hintergrund fehl. Wenn ich den try/catch entferne/kann ich endlich die Fehler sehen. Mache ich etwas falsch? Sollte error
die Pipeline-Fehler in dem Protokoll nicht erneut angezeigt werden?
EDIT: Ich habe es geschaffen, das Problem zu groovy Syntax zu, wenn z.B. Ich benutze eine Variable, die noch nicht zugewiesen wurde. Beispiel: echo foo
Wenn foo
nirgendwohin deklariert/zugewiesen wird, wird Jenkins den Build nicht ausführen und den Grund nicht anzeigen, wenn es sich in try/catch/finally befindet, was die Ausnahme erneut auslöst.
Wenn diese Ebene Groovy waren, ja, es wäre gearbeitet habe, sondern weil dies ein starkes DSL ist, kann der DSL-Läufer tun, was es mit Ausnahme will ... Vielleicht sollten Sie versuchen, diese stattdessen: https: // jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-error-code-error-signal – Renato
@RenatoBut https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/# code-carrierror-code-catch-error-and-set-build-result schlägt vor, dass try/catch/finally auch funktionieren sollte –
Richtig, aber wenn du dieses Problem hast sieht es nicht so aus ... – Renato