diff --git a/.gitignore b/.gitignore
index eadc897d07093ba6b7e0ceec29f1c1aaf89c5fd6..fcc3e0be27b75860d4ed9a1054ba5799db774104 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 # dot files
 .*
 !/.gitignore
+!/.gitlab-ci.yml
 
 # compiled python and dist stuff
 *.egg
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..320421186c3d443f3ff369983984a6d87d52e173
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,107 @@
+#
+# ** header v3.0
+# This file is a part of the CaosDB Project.
+#
+# Copyright (C) 2018 Research Group Biomedical Physics,
+# Max-Planck-Institute for Dynamics and Self-Organization Göttingen
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# ** end header
+#
+stages:
+    - setup
+    - code_style
+    - build
+    - test
+    
+#########
+# Setup
+#########
+
+# install formatters
+setup:install_formatters:python2.7:
+    tags: [ py27 ]
+    stage: setup
+    script:
+        - pip2 install --upgrade pycodestyle --user
+
+setup:install_formatters:python3.4:
+    tags: [ py34 ]
+    stage: setup
+    script:
+        - pip3.4 install --upgrade pycodestyle --user
+
+############
+# code_style
+############
+
+code_style:pycodestyle:python2.7:
+    tags: [ py27 ]
+    stage: code_style
+    script:
+        - ~/.local/bin/pycodestyle --count ./
+
+code_style:pycodestyle:python3.4:
+    tags: [ py34 ]
+    stage: code_style
+    script:
+        - ~/.local/bin/pycodestyle --count ./
+
+#########
+# Build
+#########
+
+# install python client (python 2.7)
+build:pycaosdb:python2.7:
+    tags: [ py27 ]
+    stage: build
+    script:
+        - python2.7 setup.py install --user
+
+# install python client (python 3.4)
+build:pycaosdb:python3.4:
+    tags: [ py34 ]
+    stage: build
+    script:
+        - python3.4 setup.py install --user
+
+########
+# Test
+########
+
+# unit tests for pycaosdb
+test:pycaosdb:py34:
+    tags: [ py34 ]
+    stage: test
+    script:
+        - py.test-3.4
+
+test:pycaosdb:py27:
+    tags: [ py27 ]
+    stage: test
+    script:
+        - py.test-2.7
+
+# pylint tests for pycaosdb (python 3.4)
+.test:pycaosdb:python3.4:pylint:
+    stage: test
+    script:
+        - /usr/bin/env python3.4 /home/caosdb/.local/bin/pylint --unsafe-load-any-extension=y -d all -e E,F client/PyCaosDB/caosdb/common/models.py
+
+# pylint tests for pycaosdb (python 2.7)
+.test:pycaosdb:python2.7:pylint:
+    stage: test
+    script:
+        - /usr/bin/env python2.7 /home/caosdb/.local/bin/pylint --unsafe-load-any-extension=y -d all -e E,F client/PyCaosDB/caosdb/common/models.py