diff --git a/CMakePresets.json b/CMakePresets.json
index 45417701b36f3e5c0b468e029f33a4753102c5bc..c4185b0da800f1533d11dd05435bdc36e3298842 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -7,13 +7,20 @@
   },
   "configurePresets": [
     {
-      "name": "release",
+      "name": "_ninja_release",
+      "hidden": true,
       "displayName": "Default Config (Release)",
       "description": "Default build using the Ninja generator",
       "generator": "Ninja",
       "binaryDir": "${sourceDir}/build/${presetName}",
       "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "release",
+      "inherits": "_ninja_release",
+      "cacheVariables": {
         "OGS_BUILD_UTILS": "ON",
         "OGS_USE_PYTHON": "ON"
       }
@@ -35,6 +42,14 @@
         "OGS_BUILD_GUI": "ON",
         "OGS_USE_NETCDF": "ON"
       }
+    },
+    {
+      "name": "ci-simplest",
+      "inherits": "_ninja_release",
+      "cacheVariables": {
+        "OGS_USE_CONAN": "OFF",
+        "OGS_DISABLE_POETRY": "ON"
+      }
     }
   ]
 }
diff --git a/scripts/ci/extends/template-build-linux.yml b/scripts/ci/extends/template-build-linux.yml
index 92bf2a643dfc702821db8070b4075b69305872d3..346ff35eb4522926f63f8bb17f817feb60cfe5fb 100644
--- a/scripts/ci/extends/template-build-linux.yml
+++ b/scripts/ci/extends/template-build-linux.yml
@@ -9,17 +9,12 @@
 
   before_script:
     - "echo \"For debugging run: docker run --rm -it -v $CI_BUILDS_DIR:/builds -w=$CI_PROJECT_DIR $CI_JOB_IMAGE\""
-    - mkdir -p $BUILD_DIR
-    - cd $BUILD_DIR
     - ([ "${CONAN_USER_HOME}" == "${CI_PROJECT_DIR}/.conan" ]) && conan remove --system-reqs '*'
     - ([[ $BUILD_CTEST_LARGE_ON_MASTER && "${CI_COMMIT_BRANCH}" == "master" && "${CMAKE_ARGS}" == *"USE_PYTHON=ON"* ]]) && export BUILD_CTEST_LARGE=true
   script:
-    - "echo \"Running: cmake .. -G Ninja $CMAKE_ARGS -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES\""
-    - >
-      cmake .. -G Ninja
-      $CMAKE_ARGS
-      -DCMAKE_BUILD_TYPE=$BUILD_TYPE
-      -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES
+    - cmake -S . --preset=$CMAKE_PRESET $CMAKE_ARGS -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES
+    - build_dir=${BUILD_DIR:-build/$CMAKE_PRESET}
+    - cd $build_dir
     - $BUILD_CMD_PREFIX cmake --build . --target package > >(tee make.output)
     - if [ "$BUILD_TESTS" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target tests ; fi
     - if [ "$BUILD_CTEST" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target ctest ; fi
diff --git a/scripts/ci/extends/test-artifacts.yml b/scripts/ci/extends/test-artifacts.yml
index 99fea5077af6c66c0d0ef9a63202373527bb99ff..424ff0e992ecb5ee02ef1d6cb79d6d75ea1f7e84 100644
--- a/scripts/ci/extends/test-artifacts.yml
+++ b/scripts/ci/extends/test-artifacts.yml
@@ -1,12 +1,12 @@
 .test-artifacts:
   artifacts:
     paths:
-      - $BUILD_DIR/Tests/ctest.xml
-      - $BUILD_DIR/Tests/testrunner.xml
-      - $BUILD_DIR/make.output
-      - $BUILD_DIR/*.zip
-      - $BUILD_DIR/*.tar.gz
+      - build/*/Tests/ctest.xml
+      - build/*/Tests/testrunner.xml
+      - build/*/make.output
+      - build/*/*.zip
+      - build/*/*.tar.gz
     expire_in: 1 week
     reports:
       junit:
-        - $BUILD_DIR/Tests/testrunner.xml
+        - build/*/Tests/testrunner.xml
diff --git a/scripts/ci/jobs/build-gui-linux.yml b/scripts/ci/jobs/build-gui-linux.yml
index ee0ba1e833f98939fa399ba6ca601785e35077c3..b2b8b824cd3bc685ec08612e675732fa9c9f4ffb 100644
--- a/scripts/ci/jobs/build-gui-linux.yml
+++ b/scripts/ci/jobs/build-gui-linux.yml
@@ -10,11 +10,7 @@ build gui linux:
     - when: manual
       allow_failure: true
   variables:
-    BUILD_DIR: "build-gui-linux"
+    CMAKE_PRESET: release-gui
     CMAKE_ARGS: >-
       -DOGS_USE_CONAN=OFF
-      -DOGS_BUILD_CLI=OFF
-      -DOGS_BUILD_GUI=ON
-      -DOGS_BUILD_UTILS=ON
-      -DOGS_USE_NETCDF=ON
       -DOGS_INSTALL_DEPENDENCIES=ON
diff --git a/scripts/ci/jobs/build-linux-conan.yml b/scripts/ci/jobs/build-linux-conan.yml
index 34f3a983c076bc7d574ee4eb2449647694cbf222..baabe461e6e824d3cb94eac88ae3c0237f65e82a 100644
--- a/scripts/ci/jobs/build-linux-conan.yml
+++ b/scripts/ci/jobs/build-linux-conan.yml
@@ -4,10 +4,9 @@ build linux conan:
     - .rules-master-manual
   tags: [shell, envinf1-shell]
   variables:
-    BUILD_DIR: build
+    CMAKE_PRESET: release
     CMAKE_ARGS: >-
       -DBUILD_SHARED_LIBS=ON
-      -DOGS_BUILD_UTILS=ON
       -DOGS_USE_CONAN=AUTO
       -DOGS_USE_MFRONT=ON
       -DOGS_USE_XDMF=ON
diff --git a/scripts/ci/jobs/build-linux-frontend.yml b/scripts/ci/jobs/build-linux-frontend.yml
index 7d3e086a15daf178f617dbc1045c283e6063c6aa..a1106ef33da67886b22ba58170072c14a87e9a8e 100644
--- a/scripts/ci/jobs/build-linux-frontend.yml
+++ b/scripts/ci/jobs/build-linux-frontend.yml
@@ -6,10 +6,8 @@ build linux frontend:
     - frontend2
   allow_failure: true
   variables:
-    BUILD_DIR: "build"
     CCACHE_DIR: "/data/ogs/.ccache"
-    CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_DISABLE_CCACHE=OFF -DOGS_CPU_ARCHITECTURE=generic"
+    CMAKE_PRESET: release
+    CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_USE_PYTHON=OFF -DOGS_CPU_ARCHITECTURE=generic"
   before_script:
     - source scripts/env/eve/cli.sh
-    - mkdir -p $BUILD_DIR
-    - cd $BUILD_DIR
diff --git a/scripts/ci/jobs/build-linux.yml b/scripts/ci/jobs/build-linux.yml
index 3873b170e81aeababcfba51c119db38e1ced7cb4..d8c9da5f4ead190b96f1418e16b85ba47894e97a 100644
--- a/scripts/ci/jobs/build-linux.yml
+++ b/scripts/ci/jobs/build-linux.yml
@@ -4,10 +4,9 @@ build linux:
   tags: [ docker ]
   timeout: 2h
   variables:
-    BUILD_DIR: "build"
     BUILD_CTEST_LARGE_ON_MASTER: "true"
+    CMAKE_PRESET: release
     CMAKE_ARGS: >-
-      -DOGS_BUILD_UTILS=ON
       -DOGS_USE_CONAN=OFF
       -DOGS_USE_MFRONT=ON
       -DOGS_$USE_PYTHON
@@ -24,16 +23,16 @@ build linux (no unity):
   tags: [ docker ]
   timeout: 1h
   variables:
-    BUILD_DIR: "build-no-unity"
+    BUILD_DIR: "build/no-unity"
     BUILD_TESTS: "false"
     BUILD_CTEST: "false"
+    CMAKE_PRESET: release
     CMAKE_ARGS: >-
-      -DOGS_BUILD_UTILS=ON
       -DOGS_USE_CONAN=OFF
-      -DOGS_USE_UNITY_BUILDS=OFF
       -DOGS_USE_MFRONT=ON
+      -DOGS_USE_UNITY_BUILDS=OFF
       -DOGS_USE_XDMF=ON
-      -DOGS_USE_PYTHON=ON
+      -B $BUILD_DIR
 
 build linux (no deps, no procs):
   image: $CONTAINER_GCC_IMAGE
@@ -41,9 +40,7 @@ build linux (no deps, no procs):
   tags: [ docker ]
   timeout: 1h
   variables:
-    BUILD_DIR: "build-no-unity"
     BUILD_TESTS: "false"
     BUILD_CTEST: "false"
     BUILD_PROCESSES: "SteadyStateDiffusion"
-    CMAKE_ARGS: >-
-      -DOGS_USE_CONAN=OFF
+    CMAKE_PRESET: ci-simplest
diff --git a/scripts/env/eve/cli.sh b/scripts/env/eve/cli.sh
index dfeee0cfa8ef602b9a23912cbe4f660412528736..19e453d8553073127fc4b5a14bb1f1f7a311d63e 100644
--- a/scripts/env/eve/cli.sh
+++ b/scripts/env/eve/cli.sh
@@ -8,10 +8,9 @@ fi
 module use /global/apps/modulefiles
 
 module load foss/2019b
-module load CMake/3.15.3
+module load cmake/3.19.4-1
 module load ninja
 module load git/2.23.0
-module load git-lfs/2.7.1
 
 # Libraries
 module load boost/1.67.0-1