diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5084e839abb4e817c3aaa71443e0673e16126ae1..9a601de3c30aecca74825d154519d3326f223f17 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,9 @@
 stages:  
   - build
-  - test
+  - test:scripts
+  - test:monitoring
+  - test:inputs
+  - clean
 
 build:tests:
   stage: build
@@ -11,20 +14,40 @@ build:tests:
     - build/clmctest-SNAPSHOT.tar.gz
     expire_in: 1 day
 
-test:all:
-  stage: test
+test:scripts:
+  stage: test:scripts
   dependencies: 
     - build:tests
   script: 
     - vagrant --fixture=scripts -- up
     - vagrant --fixture=scripts -- ssh test-runner -- -tt "pip3 install /vagrant/build/clmctest-SNAPSHOT.tar.gz"
     - vagrant --fixture=scripts -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.scripts"
+  when: on_success   
+  
+test:monitoring:
+  stage: test:monitoring
+  dependencies: 
+    - test:scripts
+  script: 
     - vagrant --fixture=monitoring -- up
     - vagrant --fixture=monitoring -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.monitoring"  
+  when: on_success   
+  
+test:inputs:
+  stage: test:inputs
+  dependencies: 
+    - test:monitoring
+  script: 
     - vagrant --fixture=inputs -- up
     - vagrant --fixture=inputs -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.inputs"
+  when: on_success     
+  
+clean:test:
+  stage: clean
+  script: 
+    - echo "Clean VMs"
   after_script:
     - vagrant --fixture=inputs -- destroy --force     
     - vagrant --fixture=monitoring -- destroy --force     
     - vagrant --fixture=scripts -- destroy --force         
-  when: on_success   
+  when: always       
\ No newline at end of file