diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7929c952e923a76a34f1bf54d394241defa8a561..7bcabf7f0d321764bc66e1180f0e718710e696a2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,16 @@
-image: maven:3.3-jdk-8
+stages:
+  - build
+  - deploy 
+  - sonar
+
+# Get the settings file from c2mon project
+before_script:
+  - wget https://gitlab.cern.ch/c2mon/c2mon/raw/master/settings.xml
+
 
 # Fully build and publish master branch
 build_and_publish:
+  type: deploy
   script: 
     - mvn -U -B -DskipTests clean deploy --settings settings.xml
   only:
@@ -9,7 +18,22 @@ build_and_publish:
     
 # Just run tests on feature branches
 build:
+  type: build
   script:
     - mvn -U -B clean test -DskipDockerBuild -DskipDockerTag --settings settings.xml
   except:
     - master
+
+sonar_preview:
+  type: sonar
+  script:
+    - mvn -q -U -B clean compile sonar:sonar -Dmaven.test.skip=true -Dsonar.host.url=https://en-ice-sonar.cern.ch -Dsonar.analysis.mode=preview -Dsonar.gitlab.commit_sha=$CI_BUILD_REF -Dsonar.gitlab.ref_name=$CI_BUILD_REF_NAME -Dsonar.gitlab.project_id=$CI_PROJECT_ID -Dsonar.gitlab.max_major_issues_gate=0 --settings settings.xml --debug -X
+  except:
+    - master
+
+quality_assurance:
+  stage: sonar
+  script:
+    - mvn package dependency-check:aggregate sonar:sonar -Dmaven.test.skip=true -Dsonar.dependencyCheck.reportPath=target/dependency-check-report.xml --settings settings.xml
+  only:
+    - master