diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9f862dc02f5a99513964bf6fcfd0c5aa344ea41c..d34a2b43d8555f8232532500afb02990fa18ad43 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,9 +6,13 @@ stages:
   - package
 
 variables:
+  # Docker image names
   CONTAINER_GCC_IMAGE: $CI_REGISTRY_IMAGE/gcc:$CI_COMMIT_REF_SLUG
   XUNIT_TO_JUNIT_IMAGE: $CI_REGISTRY_IMAGE/xunit-to-junit
   PRECOMMIT_IMAGE: $CI_REGISTRY_IMAGE/pre-commit
+  # Build config
+  BUILD_TYPE: Release
+  BUILD_PROCESSES: "" # Empty string: builds all processes
 
 include:
   # extends
diff --git a/scripts/ci/extends/build-win.yml b/scripts/ci/extends/build-win.yml
index 67abc7b8ef1eb25b3958616e4dcc5bc572c55213..184466db307198bbfeec220f5d67698c442f92e8 100644
--- a/scripts/ci/extends/build-win.yml
+++ b/scripts/ci/extends/build-win.yml
@@ -10,7 +10,11 @@
   script:
     - mkdir -p $BUILD_DIR
     - cd $BUILD_DIR
-    - cmake .. -G Ninja $env:CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DOGS_BUILD_PROCESSES=GroundwaterFlow
+    - >
+      cmake .. -G Ninja
+      "$env:CMAKE_ARGS"
+      -DCMAKE_BUILD_TYPE="$env:BUILD_TYPE"
+      -DOGS_BUILD_PROCESSES="$env:BUILD_PROCESSES"
     - cmake --build . | Tee-Object -FilePath make.output
     - cmake --build . --target tests
     - cmake --build . --target ctest
diff --git a/scripts/ci/extends/build.yml b/scripts/ci/extends/build.yml
index 5017d2f18ab7690a8854c344c26e351cbd7e40a8..e380cd329c3b049cfb489e30400991c37fdee24e 100644
--- a/scripts/ci/extends/build.yml
+++ b/scripts/ci/extends/build.yml
@@ -10,7 +10,11 @@
     - cd $BUILD_DIR
 
   script:
-    - cmake .. -G Ninja $CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DOGS_BUILD_PROCESSES=GroundwaterFlow
+    - >
+      cmake .. -G Ninja
+      $CMAKE_ARGS
+      -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+      -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES
     - cmake --build . > >(tee make.output)
     - cmake --build . --target tests
     - cmake --build . --target ctest
diff --git a/scripts/ci/extends/vs2019-environment.yml b/scripts/ci/extends/vs2019-environment.yml
index 94f6326ecc5c7e0d0cc23da1b429ce797795a8bf..f035b276ef09831513f4d49ae074ecf8b2d6ca8c 100644
--- a/scripts/ci/extends/vs2019-environment.yml
+++ b/scripts/ci/extends/vs2019-environment.yml
@@ -6,7 +6,7 @@
       cmd /c "VsDevCmd.bat -arch=amd64 -host_arch=amd64&set" |
       foreach {
         if ($_ -match "=") {
-          $v = $_.split("="); set-item -force -path "ENV:\$($v[0])"  -value "$($v[1])"
+          $v = $_.split("=", 2); set-item -force -path "ENV:\$($v[0])"  -value "$($v[1])"
         }
       }
       popd
diff --git a/scripts/ci/jobs/build-win.yml b/scripts/ci/jobs/build-win.yml
index a59f4efcd56b4b7018d9c2aed41273d8c4c911c7..f4bdf2c0999f3b05c2f3544d4320d7a5c9828870 100644
--- a/scripts/ci/jobs/build-win.yml
+++ b/scripts/ci/jobs/build-win.yml
@@ -7,8 +7,8 @@ build win:
   variables:
     BUILD_DIR: build-win
     CMAKE_ARGS: >-
-      "-DOGS_USE_PYTHON=ON"
-      "-DOGS_CI_TESTRUNNER_REPEAT=1"
+      -DOGS_USE_PYTHON=ON
+      -DOGS_CI_TESTRUNNER_REPEAT=1
 
   extends:
     - .build_win_definition