diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..15295b96ff687cdbd95bf8b57f4a9c070ff2ae3f
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,59 @@
+include:
+  - project: osl/code/org.etsi.osl.main
+    ref: main
+    file: 
+      - ci-templates/default.yml
+    rules:
+      - if: '$CI_COMMIT_REF_NAME == "main"'
+  
+  - project: osl/code/org.etsi.osl.main
+    ref: develop
+    file: 
+      - ci-templates/default.yml
+    rules:
+      - if: '$CI_COMMIT_REF_NAME == "develop"'
+
+  - project: osl/code/org.etsi.osl.main
+    ref: $CI_COMMIT_REF_NAME
+    file: 
+      - ci-templates/default.yml
+    rules:
+      - if: '$CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_REF_NAME != "main" && $CI_COMMIT_REF_NAME != "develop"'
+
+  - project: osl/code/org.etsi.osl.main
+    ref: develop
+    file: 
+      - ci-templates/default.yml
+    rules:
+      - if: '$CI_COMMIT_REF_NAME != "main" && $CI_COMMIT_REF_NAME != "develop" && $CI_COMMIT_REF_PROTECTED == "false"'
+
+
+docker_build:
+  extends: .default
+  stage: build
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  script:
+    - export DOCKER_TAG=$APP_VERSION
+    - |
+      if [ "$CI_COMMIT_REF_NAME" = "main" ]; then
+        echo "Pushing Docker image with tag 'latest'"
+        export DOCKER_TAG=latest
+      fi
+    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/QoDProvisioning/QoDProvisioningAPI/API/Dockerfile" --destination "${CI_REGISTRY_IMAGE}.QoDProvisioningAPI:$APP_VERSION"
+    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/QoDProvisioning/QoDProvisioningAPI/Operator/Dockerfile" --destination "${CI_REGISTRY_IMAGE}.QoDProvisioningAPIOperator:$APP_VERSION"
+  rules:
+    - if: '$CI_COMMIT_REF_PROTECTED == "true"'
+
+docker_build_dry_run:
+  extends: .default
+  stage: build
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  script:
+    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/QoDProvisioning/QoDProvisioningAPI/API/Dockerfile" --destination "${CI_REGISTRY_IMAGE}.QoDProvisioningAPI:$APP_VERSION" --no-push
+    - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/QoDProvisioning/QoDProvisioningAPI/Operator/Dockerfile" --destination "${CI_REGISTRY_IMAGE}.QoDProvisioningAPIOperator:$APP_VERSION" --no-push
+  rules:
+      - if: '$CI_COMMIT_REF_PROTECTED == "false"'