diff --git a/CMakePresets.json b/CMakePresets.json
index 500fcc838502512b03c6266dee746240162bd3f4..3f2871df96706dc034d87b144b280646feb329cc 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -213,7 +213,8 @@
       "name": "wheel-win",
       "inherits": "wheel",
       "cacheVariables": {
-        "OGS_USE_MFRONT": "OFF"
+        "OGS_USE_MFRONT": "OFF",
+        "OGS_BUILD_PROCESS_TH2M": "OFF"
       },
       "condition": {
         "type": "equals",
diff --git a/scripts/ci/jobs/build-wheels.yml b/scripts/ci/jobs/build-wheels.yml
index b08f6981978e4f86b87e6bcc51f8f606d7746ea6..213db165ae90d77d78ac2283715bc6122c3245d1 100644
--- a/scripts/ci/jobs/build-wheels.yml
+++ b/scripts/ci/jobs/build-wheels.yml
@@ -34,3 +34,22 @@ build wheels mac:
   parallel:
     matrix:
       - ARCHITECTURE: ["amd64", "arm64"]
+
+build wheels win:
+    stage: build
+    needs: [meta]
+    tags:
+      - windows
+    extends:
+      - .vs2019-environment
+    script:
+      - pipx run cibuildwheel
+      - >
+        pipx run twine upload
+        --repository-url https://gitlab.opengeosys.org/api/v4/projects/${CI_PROJECT_ID}/packages/pypi
+        --username gitlab-ci-token
+        --password ${CI_JOB_TOKEN}
+        wheelhouse/*
+    artifacts:
+      paths:
+        - wheelhouse/