From 70d4cd0a3558268c607d831a46b0b8580a60bbd2 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Tue, 20 Jun 2017 08:39:06 +0200
Subject: [PATCH] [Jenkins] Wrap sub-jobs in try-catch block to send
 notifications.

---
 Jenkinsfile | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 93d86b11260..2cc4506b492 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -57,7 +57,25 @@ builders['docs'] = {
     }
 }
 
-parallel builders
+if (helper.isOriginMaster(this)) {
+    builders['coverage'] = {
+        node('docker') {
+            dir('ogs') { checkoutWithTags() }
+            load 'ogs/scripts/jenkins/coverage.groovy'
+        }
+    }
+}
+
+try {
+    parallel builders
+}
+catch (err) {
+    currentBuild.result = 'FAILURE'
+    if (helper.isOriginMaster(this)) {
+        helper.notification(title: "${env.JOB_NAME} failed!", script: this,
+            msg: "Build failed", url: "${env.BUILD_URL}/flowGraphTable/")
+    }
+}
 
 def tag = ""
 node('master') {
@@ -73,12 +91,6 @@ node('master') {
 }
 
 if (helper.isOriginMaster(this)) {
-
-    node('docker') {
-        dir('ogs') { checkoutWithTags() }
-        load 'ogs/scripts/jenkins/coverage.groovy'
-    }
-
     if (currentBuild.result == "SUCCESS" || currentBuild.result == "UNSTABLE") {
         build job: 'OGS-6/clang-sanitizer', wait: false
         if (tag != "") {
@@ -91,9 +103,6 @@ if (helper.isOriginMaster(this)) {
                 load 'ogs/scripts/jenkins/docset.groovy'
             }
         }
-    } else {
-        helper.notification(title: "${env.JOB_NAME} failed!", script: this,
-            msg: "Build failed", url: "${env.BUILD_URL}/flowGraphTable/")
     }
 }
 
-- 
GitLab