diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 791e8959fddaf9197d8fa91f40b4ba16656c241a..71db2da3307845c41f08030cb3a994329f180c1d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,32 +14,62 @@ 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
     - cmake -DCMAKE_BUILD_TYPE=Release ..
     - make -j $(grep -c processor /proc/cpuinfo)
+
+.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}
   artifacts:
     paths:
       - release/
-    expire_in: 1 day
+    expire_in: 1 hour
+
+.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
+  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
+  image: amd64/debian:testing-slim
+
+build:debian:testing:
+  <<: *build-compatibility
+  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
+  image: amd64/debian:testing-slim
+
+build:arch:
+  <<: *build-compatibility
+  before_script:
+    - pacman -Syu --noconfirm base-devel cmake make python cppunit libxml2 tclap readline qt5-base graphviz jsoncpp
+  image: archlinux/base:latest
 
 build:doc:
   stage: build
@@ -57,7 +87,7 @@ 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
@@ -72,14 +102,14 @@ build:doc:
     - 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
   dependencies:
-    - build:gcc
+    - build:alpine:gcc
 
 test:clang:
-  <<: *test_template
+  <<: *test
   dependencies:
-    - build:clang
+    - build:alpine:clang
 
 #==========  Stage release =========
 
@@ -106,7 +136,10 @@ test:clang:
 docker:build-nightly:
   <<: *docker_template
   only:
-    - schedules
+    refs:
+      - schedules
+    variables:
+      - $NIGHTLY
   script:
     - docker build -t "$IMAGE_TAG_NIGHTLY" .
     - docker run "$IMAGE_TAG_NIGHTLY" /usr/bin/aql2 --help