diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 8855c73c1..cf6507ed1 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -35,8 +35,9 @@ jobs:
       with:
         python-version: 3.x
 
-    - name: Set up common
-      run: pip install --upgrade cmake
+    - name: Install CMake Linux
+      if: contains(matrix.os, 'ubuntu')
+      run: ci/install_cmake.sh
 
     - name: Install GFortran Linux
       if: contains( matrix.os, 'ubuntu')
diff --git a/ci/install_cmake.sh b/ci/install_cmake.sh
new file mode 100755
index 000000000..9afe1e299
--- /dev/null
+++ b/ci/install_cmake.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+set -ex
+
+wget -qO- https://github.com/Kitware/CMake/releases/download/v3.16.3/cmake-3.16.3-Linux-x86_64.tar.gz | sudo tar xz --strip=1 -C /usr/local/
+which cmake
+cmake --version