diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 43a618b00b7c767591edd5a8adefea26f455289a..a2edb7b85f11f9347a7d285e853ec6189c17c077 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: rikorose/gcc-cmake
+image: lycantropos/cmake
 
 stages:
   - build
@@ -6,16 +6,19 @@ stages:
 
 before_script:
   - g++ --version
+  - cat /etc/*-release
 
 build:
   stage: build
   variables:
       GIT_SUBMODULE_STRATEGY: normal
+      GCC_COLORS: "error=31;1:warning=35;1:note=36;1:range1=32:range2=34:locus=39;1:quote=39;1:fixit-insert=32:fixit-delete=31:diff-filename=39;1:diff-hunk=32:diff-delete=31:diff-insert=32:type-diff=32;1"
+      CLICOLOR_FORCE: 1
   script:
-    - cmake . -DCMAKE_CXX_FLAGS="-Werror"
+    - cmake . -DCMAKE_CXX_FLAGS="-Werror -fdiagnostics-color=always"
     - make -j4
     - make clean
-    - cmake . -DCMAKE_CXX_FLAGS="-Wall -Wextra" # Build again, but with more warnings
+    - cmake . -DCMAKE_CXX_FLAGS="-Wall -Wextra -fdiagnostics-color=always" # Build again, but with more warnings
     - make -j4
 
 tests:
@@ -38,7 +41,7 @@ cppcheck:
     - apt-get update -qq && apt-get install -y -qq cppcheck
     - cppcheck --version
   script:
-    - bash -x ci/cppcheck.sh
+    - ci/cppcheck.sh
 
 vera:
   stage: build
@@ -47,12 +50,16 @@ vera:
     - vera++ --version
     - cp ci/vera.profile /usr/lib/vera++/profiles/custom
   script:
-    - bash -x ci/vera.sh
+    - ci/vera.sh
 
 clang-tidy:
   stage: build
+  variables:
+    GIT_SUBMODULE_STRATEGY: normal
+    TERM: xterm-color
   before_script:
-    - apt-get update -qq && apt-get install -y -qq clang-tidy-4.0
-    - clang-tidy-4.0 --version
+    - echo deb http://deb.debian.org/debian sid main > /etc/apt/sources.list
+    - apt-get update -qq && apt-get -t sid install -y -qq clang-tidy-7
+    - clang-tidy-7 --version
   script:
-    - bash -x ci/clang-tidy.sh
+    - script -c "bash -x ci/clang-tidy.sh"
diff --git a/ci/.clang-tidy b/ci/.clang-tidy
index 6114218612a520f187515cdc7631f09629fa8b84..79406a31501a0c54cd823f6aa9f9d5f56d9d0715 100644
--- a/ci/.clang-tidy
+++ b/ci/.clang-tidy
@@ -1,9 +1,10 @@
 ---
 Checks:          >
-  clang-diagnostic-*,
+  -clang-diagnostic-error,
   clang-analyzer-*,
   bugprone-*,
-  cppcoreguidelines-*,-cppcoreguidelines-no-malloc,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-bounds-constant-array-index,
+  cert-*,
+  cppcoreguidelines-*,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-bounds-constant-array-index,
   misc-*,-misc-non-private-member-variables-in-classes,
   fuchsia-multiple-inheritance,
   google-*,-google-readability-todo,
@@ -17,8 +18,9 @@ Checks:          >
   -misc-non-private-member-variables-in-classes,
   performance-*,
   readability-*,
-WarningsAsErrors: '*,-misc-unused-parameters,-llvm-header-guard,-cppcoreguidelines-pro-type-member-init,-google-runtime-references,-clang-diagnostic-tautological-constant-out-of-range-compare,-readability-redundant-declaration'
-HeaderFilterRegex: '.*'
+  zircon-*
+WarningsAsErrors: '*,-misc-unused-parameters,-llvm-header-guard,-cppcoreguidelines-pro-type-member-init,-google-runtime-references,-clang-diagnostic-tautological-constant-out-of-range-compare,-readability-redundant-declaration,-modernize-use-equals-default,-fuchsia-statically-constructed-objects,-hicpp-signed-bitwise,-cert-err58-cpp'
+HeaderFilterRegex: 'ecss-services\/((?!lib\/).)*$'
 AnalyzeTemporaryDtors: false
 ...
 
diff --git a/ci/clang-tidy.sh b/ci/clang-tidy.sh
index 1e676ce2d6926d700576c3a0fe69bad656c16389..bdff8166981a4312ab0a2c28423a5359af80ad59 100755
--- a/ci/clang-tidy.sh
+++ b/ci/clang-tidy.sh
@@ -10,5 +10,6 @@
 echo -e "\033[0;34mRunning clang-tidy...\033[0m"
 
 cd "$(dirname "$0")"
-clang-tidy-4.0 `find ../src/ -type f -regextype posix-egrep -regex '.*\.(cpp|hpp|c|h)'` \
-    -extra-arg=-fcolor-diagnostics -- -std=c++14 -I../inc
+clang-tidy-7 `find ../src/ -type f -regextype posix-egrep -regex '.*\.(cpp|hpp|c|h)'` \
+    -extra-arg=-fcolor-diagnostics  -- -std=c++17 -I../inc \
+    -I/usr/include/c++/7/ -I/usr/include/x86_64-linux-gnu/c++/7 -I../lib/etl/include