diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..12784fe6663a62bc09aeb6dceba44b03620fd98e
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,49 @@
+variables:
+  GIT_SUBMODULE_STRATEGY: "recursive"
+  GIT_DEPTH: "3"
+  CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
+  CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
+
+cache:
+  paths:
+    - ccache
+
+.robotpkg-dynamic-graph-bridge: &robotpkg-dynamic-graph-bridge
+  except:
+    - gh-pages
+  script:
+    - mkdir -p ccache
+    - cd /root/robotpkg/motion/dynamic-graph-bridge
+    - git pull
+    - make checkout MASTER_REPOSITORY="dir ${CI_PROJECT_DIR}"
+    - make install
+    - cd work.$(hostname)/$(make show-var VARNAME=DISTNAME)
+    - make test
+
+robotpkg-dynamic-graph-bridge-14.04-release:
+  <<: *robotpkg-dynamic-graph-bridge
+  image: eur0c.laas.fr:5000/stack-of-tasks/dynamic_graph_bridge/dynamic-graph-bridge:14.04
+
+robotpkg-dynamic-graph-bridge-16.04-release:
+  <<: *robotpkg-dynamic-graph-bridge
+  image: eur0c.laas.fr:5000/stack-of-tasks/dynamic_graph_bridge/dynamic-graph-bridge:16.04
+
+doc-coverage:
+  <<: *robotpkg-dynamic-graph-bridge
+  image: eur0c.laas.fr:5000/stack-of-tasks/dynamic_graph_bridge/dynamic-graph-bridge:16.04
+  before_script:
+    - echo -e 'CXXFLAGS+= --coverage\nLDFLAGS+= --coverage\nPKG_DEFAULT_OPTIONS= debug' >> /opt/openrobots/etc/robotpkg.conf
+  after_script:
+    - cd /root/robotpkg/motion/dynamic-graph-bridge
+    - cd work.$(hostname)/$(make show-var VARNAME=DISTNAME)
+    - make doc
+    - mv doc/doxygen-html ${CI_PROJECT_DIR}
+    - mkdir -p ${CI_PROJECT_DIR}/coverage/
+    - gcovr -r .
+    - gcovr -r . --html --html-details -o ${CI_PROJECT_DIR}/coverage/index.html
+  artifacts:
+    expire_in: 1 day
+    paths:
+      - doxygen-html/
+      - coverage/
+
diff --git a/README.md b/README.md
index c6648a75bfab056cb4e41104cf29cac5899b8053..d77c95d2ca6fc768d5a56b58bfc6613a279b288a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
 dynamic-graph bindings
 ======================
-[![Build Status](https://travis-ci.org/stack-of-tasks/dynamic_graph_bridge.png?branch=master)](https://travis-ci.org/stack-of-tasks/dynamic_graph_bridge)
+
+[![Building Status](https://travis-ci.org/stack-of-tasks/dynamic_graph_bridge.svg?branch=master)](https://travis-ci.org/stack-of-tasks/dynamic_graph_bridge)
+[![Pipeline status](https://gepgitlab.laas.fr/stack-of-tasks/dynamic_graph_bridge/badges/master/pipeline.svg)](https://gepgitlab.laas.fr/stack-of-tasks/dynamic_graph_bridge/commits/master)
+[![Coverage report](https://gepgitlab.laas.fr/stack-of-tasks/dynamic_graph_bridge/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/gepetto/doc/stack-of-tasks/dynamic_graph_bridge/master/coverage/)
 
 This ROS package binds together the ROS framework with the
 dynamic-graph real-time control architecture.