From 8b4d60a61996fb268b2ba3fd85c59ea99dbe1ccb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?I=C3=B1igo=20Moreno?= <inigo.moreno@tecnalia.com>
Date: Mon, 25 Oct 2021 12:41:44 +0200
Subject: [PATCH] Refactor tags

---
 ci-templates/industrial-ci-templates.yml | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/ci-templates/industrial-ci-templates.yml b/ci-templates/industrial-ci-templates.yml
index 27a601a..fe50361 100644
--- a/ci-templates/industrial-ci-templates.yml
+++ b/ci-templates/industrial-ci-templates.yml
@@ -19,7 +19,6 @@
   variables:
     DOCKER_PUSH_REGISTRY: ${ARTIFACT_DOCKER_URL}
     DOCKER_PUSH_NAME: ${CI_PROJECT_PATH_SLUG}
-    DOCKER_PUSH_TAG: ${CI_COMMIT_REF_SLUG}
     DDEPLOY_YAML: ddeploy.yaml
   before_script:
     - apk add --update python3 git py3-pip git-lfs
@@ -42,12 +41,14 @@
     - ddeploy --yaml ${DDEPLOY_YAML}
     # Get ID of image created by ddeploy
     - 'DOCKER_ID=$(docker images --format="{{.ID}}" | head -1)'
-    # Tag and push
-    - docker tag ${DOCKER_ID} ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${DOCKER_PUSH_TAG}
-    - docker push ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${DOCKER_PUSH_TAG}
-    # Tag and push latest
-    - docker tag ${DOCKER_ID} ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:latest
-    - docker push ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:latest
+    # Tag and push with the branch or tag name.
+    - docker tag ${DOCKER_ID} ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${CI_COMMIT_REF_SLUG}
+    - docker push ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${CI_COMMIT_REF_SLUG}
+    # Tag and push with commit sha
+    - docker tag ${DOCKER_ID} ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${CI_COMMIT_SHA}
+    - docker push ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:${CI_COMMIT_SHA}
+    # Tag and push with latest only if it's on the default branch
+    - if [ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ]; then docker tag ${DOCKER_ID} ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:latest && docker push ${DOCKER_PUSH_REGISTRY}/${DOCKER_PUSH_NAME}:latest; fi
   rules:
     - if: $CI_COMMIT_TAG
       when: always
-- 
GitLab