From 83e045a1205bf1795c4b97a1d810f0fff98246fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Brunner?= <stephane.brunner@camptocamp.com>
Date: Mon, 1 Apr 2019 16:07:33 +0200
Subject: [PATCH] Deploy Docker image

---
 .travis.yml      | 22 ++++++++++++++++++++--
 ci/deploy-docker | 15 +++++++++++++++
 2 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100755 ci/deploy-docker

diff --git a/.travis.yml b/.travis.yml
index fc96d8982..8773c486c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,7 +12,11 @@ matrix:
         - python: "3.5"
         - python: "3.6"
         - python: "3.7-dev"
-        - env: BUILD_DOCKER=1
+        - env:
+            - BUILD_DOCKER=1
+            # Variable to add to publish the Docker image:
+            # * DOCKER_USERNAME
+            # * DOCKER_PASSWORD, to be encrypted, use `travis encrypt DOCKER_PASSWORD=<password>`
           services:
             - docker
           before_install:
@@ -20,7 +24,7 @@ matrix:
           install:
             - true
           script:
-            - docker build -t paperless .
+            - docker build --tag=the-paperless-project/paperless .
           after_success:
             - true
 
@@ -37,3 +41,17 @@ script:
 
 after_success:
   - coveralls
+
+deploy:
+  - provider: script
+    skip_cleanup: true
+    script: ci/deploy-docker
+    on:
+      tags: true
+      condition: '"${BUILD_DOCKER}" = 1'
+  - provider: script
+    skip_cleanup: true
+    script: ci/deploy-docker
+    on:
+      branch: master
+      condition: '"${BUILD_DOCKER}" = 1'
diff --git a/ci/deploy-docker b/ci/deploy-docker
new file mode 100755
index 000000000..f8de0666a
--- /dev/null
+++ b/ci/deploy-docker
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ "${DOCKER_USERNAME}" == "" -o "${DOCKER_PASSWORD}" == "" ]
+then
+    exit 0
+fi
+
+docker login --username=${DOCKER_USERNAME} --password=${DOCKER_PASSWORD}
+if [ "${TRAVIS_TAG}" != "" ]
+then
+    docker tag the-paperless-project/paperless the-paperless-project/paperless:${TRAVIS_TAG}
+    docker push the-paperless-project/paperless:${TRAVIS_TAG}
+else
+    docker push the-paperless-project/paperless
+fi