diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..988713f1a3ea8270f6bdc34a521db927b5bbfeb3
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,40 @@
+# This file is a template, and might need editing before it works on your project.
+# use the official gcc image, based on debian
+# can use verions as well, like gcc:5.2
+# see https://hub.docker.com/_/gcc/
+image: debian
+
+# install the necessary build tools when needed
+
+stages:
+ - build-and-test
+
+build:
+  only: 
+    refs:
+      - master
+      - devel
+  stage: build-and-test
+  before_script: 
+    - apt-get -y update
+    - apt-get -y install make build-essential libtool autoconf automake gfortran doxygen sudo ssh libnuma-dev graphviz git libyaml-dev
+  script: 
+    - git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
+    - autoreconf -ivf
+    - ./configure 
+    - find . -type d | xargs chmod o+rwx
+    # TMPDIR is not set in docker images
+    # HOMEDIR is sometimes set to /nonexistent
+    - make check 
+    - make dist
+  artifacts:
+    when: always
+    paths:
+      - tests/test-suite.log
+      - maestro-core-*.tar.gz
+  # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time
+  #cache:
+  #  key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
+  #  paths:
+  #     - ".libs/*" "**/.la"
+