diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bf81636ac1b6c82f68f6679dcc32d04eb429cd5e..25392d8cb0623cc0f746162dcd2fec1cfb8c4238 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,10 @@ navipy_install:
   - source venv/bin/activate
   - python3 setup.py bdist_wheel
 
+  artifacts:
+    paths:
+      - venv
+
 flake8:
   stage: test
   script:
@@ -28,16 +32,58 @@ flake8:
   
 navipy_unittest:
   stage: test
+  dependencies: 
+    - navipy_install
     
   script:
+  - source $CI_PROJECT_DIR/venv/bin/activate
   - python3 -m unittest discover navipy
   
+coverage:
+    stage: test
+    script:
+        - pip3 install --user nose
+        - python3 -m nose -c .noserc -q --cover-html-dir=build --cover-html
+        - coverage report -m
+    coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
+    artifacts:
+        paths:
+            - build
+        expire_in: 1 day
 
 doc_build:
   stage: doc_build
   script:
+  - source $CI_PROJECT_DIR/venv/bin/activate
   - pip3 install --user sphinx sphinx_rtd_theme
-  - cd doc ; make html  
+  - cd doc ; make html
+
+  artifacts:
+    paths:
+    - build
   
+  
+pages:
+  stage: deploy
+  before_script:
+    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
+    - 'which rsync || apt-get install rsync -y'
+    - mkdir -p ~/.ssh
+    - eval $(ssh-agent -s)
+    - '[[ -f /.dockerenv ]] && echo -e "Host *ntStrictHostKeyChecking nonn" > ~/.ssh/config'
+    - ssh-add <(echo "$PRIVATE_KEY")
+    
+  script:
+    - ssh -p50022 bolirev@bioneuro77.biologie.uni-bielefeld.de "mkdir -p /fastdata/html/navipy/"
+    - mkdir -p public/coverage
+    - cp -fr docs/build/html/* public/
+    - cp -fr build/* public/coverage/
+
+  dependencies:
+    - coverage
+    
+  artifacts:
+    paths:
+        - public
   only:
   - master