From c8faa688a116275279675958ad0a150058dc21f5 Mon Sep 17 00:00:00 2001
From: Tomas Pecka <peckato1@fit.cvut.cz>
Date: Wed, 28 Nov 2018 12:09:31 +0100
Subject: [PATCH] Cli: Docker release strategy

---
 .gitlab-ci.yml                                | 52 +++++++++++--------
 .../{master/Dockerfile => Dockerfile.master}  |  0
 .../Dockerfile => Dockerfile.master-cli}      |  0
 3 files changed, 31 insertions(+), 21 deletions(-)
 rename extra/docker/{master/Dockerfile => Dockerfile.master} (100%)
 rename extra/docker/{master-cli/Dockerfile => Dockerfile.master-cli} (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4715e00591..50f6a6fd15 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -156,18 +156,20 @@ test:arch:
   variables:
     DOCKER_DRIVER: overlay2
     DOCKER_HOST: docker
-    IMAGE_TAG_GUI_NIGHTLY:  $CI_REGISTRY_IMAGE/gui:nightly
-    IMAGE_TAG_GUI_RELEASE:  $CI_REGISTRY_IMAGE/gui:$CI_COMMIT_REF_NAME
-    IMAGE_TAG_GUI_LATEST:   $CI_REGISTRY_IMAGE/gui:latest
-    IMAGE_TAG_CLI_NIGHTLY:  $CI_REGISTRY_IMAGE/cli:nightly
-    IMAGE_TAG_CLI_RELEASE:  $CI_REGISTRY_IMAGE/cli:$CI_COMMIT_REF_NAME
-    IMAGE_TAG_CLI_LATEST:   $CI_REGISTRY_IMAGE/cli:latest
+    # ---------
+    IMAGE_CLI: $CI_REGISTRY_IMAGE/cli
+    IMAGE_GUI: $CI_REGISTRY_IMAGE/gui
+    IMAGE_ALL: $CI_REGISTRY_IMAGE
+    # ---------
+    TAG_NIGHTLY: nightly
+    TAG_RELEASE: $CI_COMMIT_REF_NAME
+    TAG_LATEST:  latest
   services:
     - docker:dind
   before_script:
     - apk add --no-cache docker
-    - docker info
     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+    - docker info
   after_script:
     - curl -X POST -F token="$PY_ALIB_TOKEN" -F ref=master https://gitlab.fit.cvut.cz/api/v4/projects/11497/trigger/pipeline
   dependencies: []
@@ -178,12 +180,15 @@ docker:build-nightly:
     variables:
       - $SCHEDULED_NIGHTLY
   script:
-    - docker build -f extra/docker/master/Dockerfile     -t "$IMAGE_TAG_GUI_NIGHTLY" .
-    - docker build -f extra/docker/master-cli/Dockerfile -t "$IMAGE_TAG_CLI_NIGHTLY" .
-    - docker run "$IMAGE_TAG_GUI_NIGHTLY" /usr/bin/aql2 --help
-    - docker run "$IMAGE_TAG_CLI_NIGHTLY" /usr/bin/aql2 --help
-    - docker push "$IMAGE_TAG_GUI_NIGHTLY"
-    - docker push "$IMAGE_TAG_CLI_NIGHTLY"
+    - docker build -f extra/docker/Dockerfile.master     -t "$IMAGE_ALL/$TAG_NIGHTLY" .
+    - docker build -f extra/docker/Dockerfile.master-cli -t "$IMAGE_CLI/$TAG_NIGHTLY" .
+    - docker tag "$IMAGE_ALL/$TAG_NIGHTLY" "$IMAGE_GUI/$TAG_NIGHTLY" # gui-version is now only a symlink to all-version
+    - docker run "$IMAGE_ALL/$TAG_NIGHTLY" /usr/bin/aql2 --help
+    - docker run "$IMAGE_CLI/$TAG_NIGHTLY" /usr/bin/aql2 --help
+    - docker run "$IMAGE_GUI/$TAG_NIGHTLY" /usr/bin/aql2 --help
+    - docker push "$IMAGE_ALL/$TAG_NIGHTLY"
+    - docker push "$IMAGE_CLI/$TAG_NIGHTLY"
+    - docker push "$IMAGE_GUI/$TAG_NIGHTLY"
 
 docker:build-release:
   <<: *docker_template
@@ -192,11 +197,16 @@ docker:build-release:
   except:
     - branches
   script:
-    - docker build -f extra/docker/master/Dockerfile     -t "$IMAGE_TAG_GUI_RELEASE" -t "$IMAGE_TAG_GUI_LATEST" .
-    - docker build -f extra/docker/master-cli/Dockerfile -t "$IMAGE_TAG_CLI_RELEASE" -t "$IMAGE_TAG_CLI_LATEST" .
-    - docker run "$IMAGE_TAG_GUI_RELEASE" /usr/bin/aql2 --help
-    - docker run "$IMAGE_TAG_CLI_RELEASE" /usr/bin/aql2 --help
-    - docker push "$IMAGE_TAG_GUI_RELEASE"
-    - docker push "$IMAGE_TAG_CLI_RELEASE"
-    - docker push "$IMAGE_TAG_GUI_LATEST"
-    - docker push "$IMAGE_TAG_CLI_LATEST"
+    - docker build -f extra/docker/Dockerfile.master     -t "$IMAGE_ALL/$TAG_RELEASE" -t "$IMAGE_ALL/$TAG_LATEST"
+    - docker build -f extra/docker/Dockerfile.master-cli -t "$IMAGE_CLI/$TAG_RELEASE" -t "$IMAGE_CLI/$TAG_LATEST"
+    - docker tag "$IMAGE_ALL/$TAG_RELEASE" "$IMAGE_GUI/$TAG_RELEASE" # gui-version is now only a symlink to all-version
+    - docker tag "$IMAGE_ALL/$TAG_LATEST"  "$IMAGE_GUI/$TAG_LATEST"  # gui-version is now only a symlink to all-version
+    - docker run "$IMAGE_ALL/$TAG_RELEASE" /usr/bin/aql2 --help
+    - docker run "$IMAGE_CLI/$TAG_RELEASE" /usr/bin/aql2 --help
+    - docker run "$IMAGE_GUI/$TAG_RELEASE" /usr/bin/aql2 --help
+    - docker push "$IMAGE_ALL/$TAG_LATEST"
+    - docker push "$IMAGE_CLI/$TAG_LATEST"
+    - docker push "$IMAGE_GUI/$TAG_LATEST"
+    - docker push "$IMAGE_ALL/$TAG_RELEASE"
+    - docker push "$IMAGE_CLI/$TAG_RELEASE"
+    - docker push "$IMAGE_GUI/$TAG_RELEASE"
diff --git a/extra/docker/master/Dockerfile b/extra/docker/Dockerfile.master
similarity index 100%
rename from extra/docker/master/Dockerfile
rename to extra/docker/Dockerfile.master
diff --git a/extra/docker/master-cli/Dockerfile b/extra/docker/Dockerfile.master-cli
similarity index 100%
rename from extra/docker/master-cli/Dockerfile
rename to extra/docker/Dockerfile.master-cli
-- 
GitLab