diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..66c6629fd51c2eaa77bfdd6b5f43775c40ec6be0
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,161 @@
+stages:
+  - none
+  - csm
+  - falko
+  - csm_falko
+
+############ YAML ANCHORS ############
+.preliminaries_template: &preliminaries_definition
+  # update apt
+  - apt-get update
+
+.build_install_csm_template: &build_install_csm_definition
+  - apt-get install -y libgsl-dev
+  - if [ -d csm ]; then
+  -   echo "directory csm exists"
+  -   cd csm
+  -   git pull
+  - else
+  -   git clone https://github.com/AndreaCensi/csm.git
+  -   cd csm
+  - fi
+  - cmake .
+  - make -j2
+  - make install
+  - cd ..
+
+.build_install_falko_template: &build_install_falko_definition
+  - if [ -d falkolib ]; then
+  -   echo "directory falkolib exists" 
+  -   cd falkolib
+  -   git pull
+  - else
+  -   git clone https://gitlab.iri.upc.edu/labrobotica/algorithms/falkolib.git
+  -   cd falkolib
+  - fi
+  - mkdir -pv build
+  - cd build
+  - cmake ..
+  - make -j2
+  - make install
+  - cd ../..
+
+.build_and_test_template: &build_and_test_definition
+  - mkdir -pv build
+  - cd build
+  - cmake -DCMAKE_BUILD_TYPE=release -DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON ..
+  - make -j2
+  - ctest 
+  - make install
+
+############ UBUNTU 16.04 TESTS ############
+build_and_test_none:xenial:
+  stage: none
+  image: labrobotica/wolf_deps:16.04
+  before_script:
+    - *preliminaries_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+
+build_and_test_csm:xenial:
+  stage: csm
+  image: labrobotica/wolf_deps:16.04
+  cache:
+    - key: csm-xenial
+      paths:
+      - csm/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_csm_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+
+wolf_build_and_test_falko:xenial:
+  stage: falko
+  image: labrobotica/wolf_deps:16.04
+  cache:
+    - key: falko-xenial
+      paths:
+      - falkolib/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_falko_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+    
+wolf_build_and_test_csm_falko:xenial:
+  stage: csm_falko
+  image: labrobotica/wolf_deps:16.04
+  cache:
+    - key: csm-xenial
+      paths:
+      - csm/
+    - key: falko-xenial
+      paths:
+      - falkolib/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_falko_definition
+    - *build_install_csm_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+
+############ UBUNTU 18.04 TESTS ############
+wolf_build_and_test_none:bionic:
+  stage: none
+  image: labrobotica/wolf_deps:18.04
+  before_script:
+    - *preliminaries_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+
+wolf_build_and_test_csm:bionic:
+  stage: csm
+  image: labrobotica/wolf_deps:18.04
+  cache:
+    - key: csm-bionic
+      paths:
+      - csm/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_csm_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+
+wolf_build_and_test_falko:bionic:
+  stage: falko
+  image: labrobotica/wolf_deps:18.04
+  cache:
+    - key: falko-bionic
+      paths:
+      - falkolib/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_falko_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition
+    
+wolf_build_and_test_csm_falko:bionic:
+  stage: csm_falko
+  image: labrobotica/wolf_deps:18.04
+  cache:
+    - key: csm-bionic
+      paths:
+      - csm/
+    - key: falko-bionic
+      paths:
+      - falkolib/
+  before_script:
+    - *preliminaries_definition
+    - *build_install_falko_definition
+    - *build_install_csm_definition
+    - ldconfig # update links (shared libraries)
+  script:
+    - *build_and_test_definition