From 59080d616d3e20a98521b488861b5ba9868d458f Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Thu, 3 Nov 2016 18:22:47 +0100
Subject: [PATCH] [Jenkins] Deploy tagged commits.

---
 Jenkinsfile                   |  9 ++++++++-
 scripts/jenkins/deploy.groovy | 17 +++++++++++++----
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index f68a7b1bb19..72bf19a39b9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -47,6 +47,13 @@ node { step([$class: 'GitHubCommitStatusSetter']) }
 if (currentBuild.result == "SUCCESS" || currentBuild.result == "UNSTABLE") {
     if (helper.isOriginMaster(this)) {
         build job: 'OGS-6/clang-sanitizer', wait: false
-        build job: 'OGS-6/Deploy', wait: false
+        node('master') {
+            checkout scm
+            def tag = helper.getTag()
+            if (tag != "") {
+                keepBuild()
+                currentBuild.displayName = tag
+            }
+        }
     }
 }
diff --git a/scripts/jenkins/deploy.groovy b/scripts/jenkins/deploy.groovy
index 3084b4ed067..2577ee39f04 100644
--- a/scripts/jenkins/deploy.groovy
+++ b/scripts/jenkins/deploy.groovy
@@ -6,16 +6,25 @@ node {
             fingerprintArtifacts: true, flatten: true,
             projectName: 'OGS-6/ufz/master',
             selector: [$class: 'LastCompletedBuildSelector']])
-            s3upload('*')
+            if (gitTag == "")
+                s3upload('*')
+            else
+                s3upload('*', "opengeosys/ogs6-releases/${gitTag}")
         build job: 'OGS-6/Deploy-Post', wait: false
     }
 }
 
-def s3upload(files) {
+def s3upload(files, bucket = null) {
+    def managed = false
+    if (bucket == null) {
+        managed = true
+        bucket = 'opengeosys'
+    }
+
     step([$class: 'S3BucketPublisher',
         dontWaitForConcurrentBuildCompletion: true, entries:
-        [[bucket: 'opengeosys', excludedFile: '', flatten: true, gzipFiles: false,
-            managedArtifacts: true, noUploadOnFailure: true, selectedRegion: 'eu-central-1',
+        [[bucket: "${bucket}", excludedFile: '', flatten: true, gzipFiles: false,
+            managedArtifacts: managed, noUploadOnFailure: true, selectedRegion: 'eu-central-1',
             sourceFile: "${files}", storageClass: 'STANDARD', uploadFromSlave: true,
             useServerSideEncryption: false]], profileName: 'S3 UFZ', userMetadata: []])
 }
-- 
GitLab