diff --git a/.gitlab/ci/build.gitlab-ci.yml b/.gitlab/ci/build.gitlab-ci.yml
index 80b0af0ce6c5a8c078f8a9ef232828f0a2cf917e..a27b3c0f3c8a836722f73fe5d61a370f3b61f3f1 100644
--- a/.gitlab/ci/build.gitlab-ci.yml
+++ b/.gitlab/ci/build.gitlab-ci.yml
@@ -1,5 +1,6 @@
 build:ubuntu_cpp:
   stage: build
+  needs: []
   tags:
     - docker
 
@@ -17,6 +18,7 @@ build:ubuntu_cpp:
 
 build:ubuntu_python:
   stage: build
+  needs: []
   tags:
     - docker
 
@@ -28,4 +30,23 @@ build:ubuntu_python:
     - python3 -m pip install .
   artifacts:
     paths:
-      - venv/
\ No newline at end of file
+      - venv/
+
+build:windows_cpp:
+  stage: build
+  needs: []
+  tags:
+    - windows
+
+  image: mcr.microsoft.com/windows/servercore:ltsc2022
+  before_script:
+    - Invoke-WebRequest -UseBasicParsing "https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4-windows-x86_64.msi" -o cmake-3.27.4-windows-x86_64.msi
+    - Start-Process -Wait -FilePath MsiExec.exe -ArgumentList '/i cmake-3.27.4-windows-x86_64.msi ADD_CMAKE_TO_PATH=System /qn'
+    - Invoke-WebRequest -UseBasicParsing "https://aka.ms/vs/17/release/vs_buildtools.exe" -o vs_buildtools.exe
+    - Start-Process -Wait -FilePath .\vs_buildtools.exe -ArgumentList '-q'
+  script:
+    - mkdir -p build_cpp
+    - mkdir -p install_cpp
+    - cd build_cpp
+    - cmake -DCMAKE_INSTALL_PREFIX:PATH=../install_cpp -DCMAKE_BUILD_TYPE=Debug ..
+    - make -j2 all install
diff --git a/.gitlab/ci/coverage.gitlab-ci.yml b/.gitlab/ci/coverage.gitlab-ci.yml
index 1977b8aa722c3228862a2aacd5b8ef1fe861bc61..027f3078180bb32b36ca4666f171dda90ef7f7be 100644
--- a/.gitlab/ci/coverage.gitlab-ci.yml
+++ b/.gitlab/ci/coverage.gitlab-ci.yml
@@ -33,4 +33,4 @@ coverage:ubuntu_python:
     reports:
       coverage_report:
         coverage_format: cobertura
-        path: coverage.xml
+        path: aidge_core/coverage.xml
diff --git a/.gitlab/ci/test.gitlab-ci.yml b/.gitlab/ci/test.gitlab-ci.yml
index 31e4d3f71b55f4d14373cc7f90071609ad99487a..25ddfca3dadd420464f4037a8c99dc1e3122f80a 100644
--- a/.gitlab/ci/test.gitlab-ci.yml
+++ b/.gitlab/ci/test.gitlab-ci.yml
@@ -5,7 +5,10 @@ test:ubuntu_cpp:
     - docker
   script:
     - cd build_cpp
-    - ctest --output-on-failure
+    - ctest --output-junit ctest-results.xml --output-on-failure
+  artifacts:
+    reports:
+      junit: build_cpp/ctest-results.xml
 
 test:ubuntu_python:
   stage: test
@@ -15,7 +18,10 @@ test:ubuntu_python:
   script:
     - source venv/bin/activate
     - cd aidge_core
+    - python3 -m pip install unittest-xml-reporting
     - python3 -m pip list
-    # Run on discovery all tests located in core/unit_tests/python and discard the stdout 
-    # only to show the errors/warnings and the results of the tests
-    - python3 -m unittest discover -s unit_tests/ -v -b 1> /dev/null
+    # Run on discovery all tests located in core/unit_tests/python
+    - python3 -m xmlrunner discover -s unit_tests/ -v -b --output-file xmlrunner-results.xml
+  artifacts:
+    reports:
+      junit: aidge_core/xmlrunner-results.xml