diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e32d3a9238cc0405bed68ef1f99063a8e10a4e8d..3f249ede86def0b33675e2b56e53eea5cd1f856a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,6 +35,9 @@ workflow:
     - if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::mac only.*/
       variables:
         PIPELINE_NAME: "mac only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
+    - if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::win only.*/
+      variables:
+        PIPELINE_NAME: "win only MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
     - if: $CI_MERGE_REQUEST_IID # merge requests
       variables:
         PIPELINE_NAME: "MR pipeline: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
@@ -63,3 +66,6 @@ include:
   - local: "/scripts/ci/pipelines/mac.yml"
     rules:
       - if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::mac only.*/
+  - local: "/scripts/ci/pipelines/win.yml"
+    rules:
+      - if: $CI_MERGE_REQUEST_LABELS =~ /.*ci::win only.*/
diff --git a/scripts/ci/pipelines/regular.yml b/scripts/ci/pipelines/regular.yml
index cb97178b7a685293de347108c970088a2ab819ed..9a3e381efcd28aebd20245bfb7b96ff2914f495c 100644
--- a/scripts/ci/pipelines/regular.yml
+++ b/scripts/ci/pipelines/regular.yml
@@ -5,13 +5,12 @@ include:
   - local: "/scripts/ci/jobs/pre-commit.yml"
   - local: "/scripts/ci/pipelines/linux.yml"
   - local: "/scripts/ci/pipelines/mac.yml"
+  - local: "/scripts/ci/pipelines/win.yml"
   - local: "/scripts/ci/jobs/build-docs.yml"
-  - local: "/scripts/ci/jobs/build-win.yml"
   - local: "/scripts/ci/jobs/build-container.yml"
   - local: "/scripts/ci/jobs/jupyter.yml"
   - local: "/scripts/ci/jobs/code-quality.yml"
   - local: "/scripts/ci/jobs/code-coverage.yml"
-  - local: "/scripts/ci/jobs/build-gui-win.yml"
   - local: "/scripts/ci/jobs/check-header.yml"
   - local: "/scripts/ci/jobs/include-what-you-use.yml"
   - local: "/scripts/ci/jobs/clang-sanitizer.yml"
diff --git a/scripts/ci/pipelines/win.yml b/scripts/ci/pipelines/win.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2ceb8f4819bec12281acd5b9d503250d2beaef8f
--- /dev/null
+++ b/scripts/ci/pipelines/win.yml
@@ -0,0 +1,5 @@
+include:
+  - local: "/scripts/ci/extends/*.yml"
+  - local: "/scripts/ci/jobs/meta.yml"
+  - local: "/scripts/ci/jobs/build-win.yml"
+  - local: "/scripts/ci/jobs/build-gui-win.yml"