diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b037834b648411da1489ad24f1366fbd63348452..017cfc5cbfa6fa67cb4eabc367a32021923def23 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,16 +1,18 @@
 image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
 
 variables:
-    OTB_BUILD: /src/otb/build/OTB/build  # Local OTB build directory
-    OTBTF_SRC: /src/otbtf  # Local OTBTF source directory
-    OTB_TEST_DIR: $OTB_BUILD/Testing/Temporary  # OTB testing directory
-    ARTIFACT_TEST_DIR: $CI_PROJECT_DIR/testing
-    CRC_BOOK_TMP: /tmp/crc_book_tests_tmp
-    DOCKER_BUILDKIT: 1
-    DOCKER_DRIVER: overlay2
-    CACHE_IMAGE_BASE: $CI_REGISTRY_IMAGE:otbtf-base
-    CACHE_IMAGE_BUILDER: $CI_REGISTRY_IMAGE:builder
-    BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+  OTBTF_VERSION: 3.2.1
+  OTB_BUILD: /src/otb/build/OTB/build  # Local OTB build directory
+  OTBTF_SRC: /src/otbtf  # Local OTBTF source directory
+  OTB_TEST_DIR: $OTB_BUILD/Testing/Temporary  # OTB testing directory
+  ARTIFACT_TEST_DIR: $CI_PROJECT_DIR/testing
+  CRC_BOOK_TMP: /tmp/crc_book_tests_tmp
+  DOCKER_BUILDKIT: 1
+  DOCKER_DRIVER: overlay2
+  CACHE_IMAGE_BASE: $CI_REGISTRY_IMAGE:otbtf-base
+  CACHE_IMAGE_BUILDER: $CI_REGISTRY_IMAGE:builder
+  BRANCH_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+  DEV_IMAGE: $CI_REGISTRY_IMAGE:cpu-basic-dev-testing
     
 workflow:
   rules:
@@ -66,7 +68,7 @@ docker image:
       --cache-from $CACHE_IMAGE_BASE
       --cache-from $CACHE_IMAGE_BUILDER
       --cache-from $BRANCH_IMAGE
-      --cache-from $CI_REGISTRY_IMAGE:cpu-basic-dev-testing
+      --cache-from $DEV_IMAGE
       --tag $BRANCH_IMAGE
       --build-arg OTBTESTS="true"
       --build-arg KEEP_SRC_OTB="true"
@@ -155,24 +157,26 @@ deploy:
   image: docker/compose:latest
   services:
     - name: docker:dind
+  variables:
+    CI_REGISTRY_PUBIMG: $CI_REGISTRY_IMAGE/$OTBTF_VERSION
   before_script:
     - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
   timeout: 10 hours
   script:
     - echo "Shippping!"
     - docker pull $BRANCH_IMAGE
-    - docker tag $BRANCH_IMAGE $CI_REGISTRY_IMAGE:cpu-basic-dev-testing
-    - docker push $CI_REGISTRY_IMAGE:cpu-basic-dev-testing
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:cpu-basic --build-arg BASE_IMG=ubuntu:20.04 --build-arg BZL_CONFIGS="" .  # cpu-basic
-    - docker push $CI_REGISTRY_IMAGE:cpu-basic
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:cpu-basic-dev --build-arg BASE_IMG=ubuntu:20.04 --build-arg BZL_CONFIGS="" --build-arg KEEP_SRC_OTB=true .  # cpu-basic-dev
-    - docker push $CI_REGISTRY_IMAGE:cpu-basic-dev
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:gpu --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 .  # gpu
-    - docker push $CI_REGISTRY_IMAGE:gpu
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:gpu-dev --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg KEEP_SRC_OTB=true .  # gpu-dev
-    - docker push $CI_REGISTRY_IMAGE:gpu-dev
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:gpu-basic --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg BZL_CONFIGS="" .  # gpu-basic
-    - docker push $CI_REGISTRY_IMAGE:gpu-basic
-    - docker build --network='host' --tag $CI_REGISTRY_IMAGE:gpu-basic-dev --build-arg BZL_CONFIGS="" --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg KEEP_SRC_OTB=true .  # gpu-basic-dev
-    - docker push $CI_REGISTRY_IMAGE:gpu-basic-dev
+    - docker tag $BRANCH_IMAGE $DEV_IMAGE
+    - docker push $DEV_IMAGE
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:cpu-basic --build-arg BASE_IMG=ubuntu:20.04 --build-arg BZL_CONFIGS="" .  # cpu-basic
+    - docker push $CI_REGISTRY_PUBIMG:cpu-basic
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:cpu-basic-dev --build-arg BASE_IMG=ubuntu:20.04 --build-arg BZL_CONFIGS="" --build-arg KEEP_SRC_OTB=true .  # cpu-basic-dev
+    - docker push $CI_REGISTRY_PUBIMG:cpu-basic-dev
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:gpu --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 .  # gpu
+    - docker push $CI_REGISTRY_PUBIMG:gpu
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:gpu-dev --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg KEEP_SRC_OTB=true .  # gpu-dev
+    - docker push $CI_REGISTRY_PUBIMG:gpu-dev
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:gpu-basic --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg BZL_CONFIGS="" .  # gpu-basic
+    - docker push $CI_REGISTRY_PUBIMG:gpu-basic
+    - docker build --network='host' --tag $CI_REGISTRY_PUBIMG:gpu-basic-dev --build-arg BZL_CONFIGS="" --build-arg BASE_IMG=nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04 --build-arg KEEP_SRC_OTB=true .  # gpu-basic-dev
+    - docker push $CI_REGISTRY_PUBIMG:gpu-basic-dev