diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 10705cd8d50ff35f83333b689c05143bc099658d..cc643cd9f5e8bf3e8b4ba7f43d88ea1a1a610d1d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,29 +17,8 @@ variables:
 
 include:
   - local: "/helpers/build_image.yaml"
-
-.docker_based_job:
-  image: docker:19.03.1
-  tags:
-    - docker
-    - kubernetes
-  services:
-    - docker:19.03.1-dind
-  before_script:
-    - docker info
-    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
-
-
-.helm_based_job:
-  extends: .docker_based_job
-  image: $CICHART_IMAGE
-  before_script:
-    - docker info
-    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
-    - shopt -s expand_aliases
-    - alias helm='docker run -t --rm -e HELM_EXPERIMENTAL_OCI="$HELM_EXPERIMENTAL_OCI" -v $(pwd):/apps -w /apps -v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm -v ~/.cache/helm:/root/.cache/helm alpine/helm:3.2.3'
-    - helm registry login -u ${CI_REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY}
-
+  - local: "/helpers/docker_base.yaml"
+  - local: "/helpers/helm_base.yaml"
 
 build ci:
   stage: .pre
diff --git a/helpers/build_image.yaml b/helpers/build_image.yaml
index 94c031d03188266a120f3d87bf135ed7e68c7460..f6d3e9514f83234c6d405142f1de4a86ce5afb83 100644
--- a/helpers/build_image.yaml
+++ b/helpers/build_image.yaml
@@ -10,17 +10,15 @@
 #   variables:
 #     IMAGE_NAME: "cspp-geo-grb"
 #     IMAGE_DIR: "cspp_geo_grb"
+include:
+  - local: "/helpers/docker_base.yaml"
 
 .build_image:
+  extends: .docker_based_job
   variables:
     IMAGE_NAME: ""
     IMAGE_DIR: ""
   stage: build image
-  tags:
-    - docker
-    - kubernetes
-  before_script:
-    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
   script:
     - image_url="${CI_REGISTRY_IMAGE}/${IMAGE_NAME}"
     - if [ -z "$CI_COMMIT_TAG" ]; then
diff --git a/helpers/docker_base.yaml b/helpers/docker_base.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..10c7389fff10d2afa0e1844f8a6b665cb827335b
--- /dev/null
+++ b/helpers/docker_base.yaml
@@ -0,0 +1,10 @@
+.docker_based_job:
+  image: docker:19.03.1
+  tags:
+    - docker
+    - kubernetes
+  services:
+    - docker:19.03.1-dind
+  before_script:
+    - docker info
+    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
diff --git a/helpers/helm_base.yaml b/helpers/helm_base.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..49fa7d9a2084a86c5d6d3b367ed49805fd4d0bf1
--- /dev/null
+++ b/helpers/helm_base.yaml
@@ -0,0 +1,12 @@
+include:
+  local: "/helpers/docker_base.yaml"
+
+.helm_based_job:
+  extends: .docker_based_job
+  image: $CICHART_IMAGE
+  before_script:
+    - docker info
+    - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
+    - shopt -s expand_aliases
+    - alias helm='docker run -t --rm -e HELM_EXPERIMENTAL_OCI="$HELM_EXPERIMENTAL_OCI" -v $(pwd):/apps -w /apps -v ~/.kube:/root/.kube -v ~/.helm:/root/.helm -v ~/.config/helm:/root/.config/helm -v ~/.cache/helm:/root/.cache/helm alpine/helm:3.2.3'
+    - helm registry login -u ${CI_REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY}