diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f711bdf52568d8e1097f925ae342f60c2e421d0b..151ddf93fdf712a76e7429850bf97d75e9619c5b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,12 +14,9 @@ stages:
 
 #==========  Stage build  ==========
 
-.build: &build_template
+.build: &build
   stage: build
-  before_script:
-    - apk add --no-cache bash build-base cmake python3 libexecinfo-dev cppunit-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev ${EXTRA_PKGS}
   script:
-    - export CXX=${CXX}
     - CMake/generate.py -wm
     - mkdir release
     - cd release
@@ -28,18 +25,51 @@ stages:
   artifacts:
     paths:
       - release/
-    expire_in: 1 day
+    expire_in: 1 hour
+
+.build:push: &build-push
+  <<: *build
+  image: alpine:3.8
+  before_script:
+    - apk add --no-cache bash build-base cmake python3 libexecinfo-dev cppunit-dev libxml2-dev tclap-dev readline-dev qt5-qtbase-dev graphviz-dev jsoncpp-dev ${EXTRA_PKGS}
+    - export CXX=${CXX}
+
+.build:compatibility: &build-compatibility
+  <<: *build
+  only:
+    variables:
+      - $SCHEDULED_COMPATIBILITY
 
-build:gcc:
-  <<: *build_template
+build:alpine:gcc:
+  <<: *build-push
   variables:
     CXX: g++
 
-build:clang:
-  <<: *build_template
+build:alpine:clang:
+  <<: *build-push
   variables:
-    CXX: clang++
     EXTRA_PKGS: clang
+    CXX: clang++
+
+build:debian:stable:
+  <<: *build-compatibility
+  image: amd64/debian:stable-slim
+  before_script:
+    - apt-get update
+    - apt-get install -y build-essential cmake make python3 libcppunit-dev libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
+
+build:debian:testing:
+  <<: *build-compatibility
+  image: amd64/debian:testing-slim
+  before_script:
+    - apt-get update
+    - apt-get install -y build-essential cmake make python3 libcppunit-dev libxml2-dev libtclap-dev libreadline-dev qtbase5-dev graphviz-dev libjsoncpp-dev
+
+build:arch:
+  <<: *build-compatibility
+  image: archlinux/base:latest
+  before_script:
+    - pacman -Syu --noconfirm base-devel cmake make python cppunit libxml2 tclap readline qt5-base graphviz jsoncpp
 
 build:doc:
   stage: build
@@ -57,10 +87,8 @@ build:doc:
 
 #==========  Stage test  ==========
 
-.test: &test_template
+.test: &test
   stage: test
-  before_script:
-    - apk add --no-cache bash bc coreutils python3 cmake make libexecinfo cppunit libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp
   script:
     - cd release
     - make test
@@ -71,15 +99,53 @@ build:doc:
     - cd ../..
     - for test in $(ls tests.*.sh); do ./${test} release/bin $(grep -c processor /proc/cpuinfo) || exit 1; touch release/bin/log_tests.txt; cat release/bin/log_tests.txt; done
 
-test:gcc:
-  <<: *test_template
+.test:push: &test-push
+  <<: *test
+  image: alpine:3.8
+  before_script:
+    - apk add --no-cache bash bc coreutils python3 cmake make libexecinfo cppunit libxml2 tclap readline qt5-qtbase qt5-qtbase-x11 graphviz jsoncpp
+
+.test:compatibility: &test-compatibility
+  <<: *test
+  only:
+    variables:
+      - $SCHEDULED_COMPATIBILITY
+
+test:alpine:gcc:
+  <<: *test-push
   dependencies:
-    - build:gcc
+    - build:alpine:gcc
 
-test:clang:
-  <<: *test_template
+test:alpine:clang:
+  <<: *test-push
+  dependencies:
+    - build:alpine:clang
+
+test:debian:stable:
+  <<: *test-compatibility
+  image: amd64/debian:stable-slim
+  before_script:
+    - apt-get update
+    - apt-get install -y build-essential bash bc coreutils cmake make python3 libcppunit-1.13-0v5 libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
+  dependencies:
+    - build:debian:stable
+
+test:debian:testing:
+  <<: *test-compatibility
+  image: amd64/debian:testing-slim
+  before_script:
+    - apt-get update
+    - apt-get install -y build-essential bash bc coreutils cmake make python3 libcppunit-1.14 libxml2 libreadline7 libqt5widgets5 libqt5xml5 graphviz libjsoncpp1
+  dependencies:
+    - build:debian:testing
+
+test:arch:
+  <<: *test-compatibility
+  image: archlinux/base:latest
+  before_script:
+    - pacman -Syu --noconfirm base-devel bash bc coreutils cmake make python cppunit libxml2 tclap readline qt5-base graphviz jsoncpp
   dependencies:
-    - build:clang
+    - build:arch
 
 #==========  Stage release =========