diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c3775f1eb3027c704d72161f768ef390a6a72016..e264e7c9ade90155e8c867dba704b532f326b1e2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,44 +1,64 @@
 # Define templates
 include:
   - project: 'gazelle/private/gitlab-ci-templates'
-    file: 'extends.yaml'
-    ref: 'master'
+    file: 'extends-v2.yaml'
+    ref: '1.0.0'
 
 # Define stages
 stages:
   - build
-  - postbuild
+  - predeploy
   - deploy
-  - tests
+  - test
+  - publish
   - release
   - upgrade
   - cleanup
 
 # Define global variables
 variables:
-  P_NAME: "uml-models"
-  P_APP_TYPE: "java"
-  P_CODE_SRC_PATH: "."
   P_MAVEN_IMAGE_TAG: "3.6.3-jdk-11-slim"
 
-# Define jobs
-code:
+compile/unit-test:
   stage: build
   extends:
-    - .buildCodeForJavaWithPostgresql
+    - .buildJavaMavenTest
   variables:
-    P_MAVEN_EXTRA_ARGS: "-DskipIT=true"
+    P_MAVEN_EXTRA_ARGS: "-DskipITs"
 
-quality:
-  stage: tests
+
+package:
+  stage: build
   extends:
-    - .testQualityForJavaWithSonarqube
+    - .buildJavaMavenPackage
   variables:
-    P_MAVEN_IMAGE_TAG: "3.6.3-jdk-11"
+    P_MAVEN_EXTRA_ARGS: "-DskipTests"
+  needs:
+    - job: compile/unit-test
+      artifacts: true
+
+install-cache-repo:
+  stage: publish
+  extends:
+    - .publishJavaMavenInstall
+  variables:
+    P_MAVEN_EXTRA_ARGS: "-DskipTests "
+  needs:
+    - job: package
+      artifacts: true
+
+publish-code:
+  stage: publish
+  extends:
+    - .publishJavaMavenDeploy
+  needs:
+    - job: package
+      artifacts: true
 
 release/code:
   stage: release
   extends:
     - .releaseCodeForJava
+  when: manual
   variables:
-    P_MAVEN_EXTRA_ARGS: "-DskipIT=true"
+    P_MAVEN_JAVADOC_SKIP: "true"