From 91a9f5622f96301e4a7569f4102299773bb69bc5 Mon Sep 17 00:00:00 2001
From: Matthias Volk <matthias.volk@cs.rwth-aachen.de>
Date: Tue, 12 Dec 2017 14:43:45 +0100
Subject: [PATCH] Push successful builds in travis to dockerhub

---
 .travis.yml               |  8 ++++++++
 travis/generate_travis.py | 12 ++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index fcc0a9a2f..2e0566f2f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -291,6 +291,10 @@ jobs:
         - docker cp storm:/storm/. .
       after_failure:
         - find build -iname '*err*.log' -type f -print -exec cat {} \;
+      after_success:
+        - docker login -u '$DOCKER_USERNAME' -p '$DOCKER_PASSWORD';
+        - docker tag storm mvolk/storm-debug:travis;
+        - docker push mvolk/storm-debug:travis;
     - stage: Test all
       os: linux
       compiler: gcc
@@ -303,4 +307,8 @@ jobs:
         - docker cp storm:/storm/. .
       after_failure:
         - find build -iname '*err*.log' -type f -print -exec cat {} \;
+      after_success:
+        - docker login -u '$DOCKER_USERNAME' -p '$DOCKER_PASSWORD';
+        - docker tag storm mvolk/storm:travis;
+        - docker push mvolk/storm:travis;
 
diff --git a/travis/generate_travis.py b/travis/generate_travis.py
index f3ae09641..c50201563 100644
--- a/travis/generate_travis.py
+++ b/travis/generate_travis.py
@@ -119,6 +119,18 @@ if __name__ == "__main__":
                 buildConfig += "        - docker cp storm:/storm/. .\n"
                 buildConfig += "      after_failure:\n"
                 buildConfig += "        - find build -iname '*err*.log' -type f -print -exec cat {} \;\n"
+                # Upload to dockerhub
+                if stage[1] == "TestAll":
+                    buildConfig += "      after_success:\n"
+                    buildConfig += "        - docker login -u '$DOCKER_USERNAME' -p '$DOCKER_PASSWORD';\n"
+                    if "Debug" in build:
+                        buildConfig += "        - docker tag storm mvolk/storm-debug:travis;\n"
+                        buildConfig += "        - docker push mvolk/storm-debug:travis;\n"
+                    elif "Release" in build:
+                        buildConfig += "        - docker tag storm mvolk/storm:travis;\n"
+                        buildConfig += "        - docker push mvolk/storm:travis;\n"
+                    else:
+                        assert False
             s += buildConfig
 
     print(s)