@@ -232,12 +232,15 @@ jobs:
232232
233233 windows-build :
234234 env :
235- VCPKG_PATH : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows"
236- VCPKG_PATH_BIN : " ${{github.workspace}}/build/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/build/vcpkg/packages/jemalloc_x64-windows/bin"
235+ BUILD_DEBUG_DIR : " ${{github.workspace}}/debug/build"
236+ INSTL_DEBUG_DIR : " ${{github.workspace}}/debug/install-dir"
237+ BUILD_RELEASE_DIR : " ${{github.workspace}}/release/build"
238+ INSTL_RELEASE_DIR : " ${{github.workspace}}/release/install-dir"
239+ VCPKG_PATH : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
240+ VCPKG_PATH_BIN : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows/bin"
237241 strategy :
238242 matrix :
239243 os : ['windows-2022', 'windows-2025']
240- build_type : [Debug, Release]
241244 compiler : [{c: cl, cxx: cl}]
242245 shared_library : ['ON', 'OFF']
243246 level_zero_provider : ['ON']
@@ -246,7 +249,6 @@ jobs:
246249 # extra job: Custom (old) CMake, clang-cl compiler
247250 # Note: This CMake uses NMake generator as VS paths are probably messed up (by CMake?)
248251 - os : ' windows-2025'
249- build_type : Release
250252 extra_build_options : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
251253 compiler : {c: clang-cl, cxx: clang-cl}
252254 shared_library : ' ON'
@@ -255,21 +257,26 @@ jobs:
255257 cmake_ver : ' 3.14.0-win64-x64'
256258 # extra job: Custom CMake, L0/CUDA providers disabled
257259 - os : ' windows-2025'
258- build_type : Release
259260 compiler : {c: cl, cxx: cl}
260261 shared_library : ' ON'
261262 level_zero_provider : ' OFF'
262263 cuda_provider : ' OFF'
263264 cmake_ver : ' 3.28.0-windows-x86_64'
264265 # umfd enabled (this job will replace one from matrix)
265266 - os : ' windows-2022'
266- build_type : Release
267267 compiler : {c: cl, cxx: cl}
268268 shared_library : ' ON'
269269 level_zero_provider : ' ON'
270270 cuda_provider : ' ON'
271271 umfd_lib : ' ON'
272- name : Basic (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}}, level_zero_provider=${{matrix.level_zero_provider}}, cuda_provider=${{matrix.cuda_provider}}, cmake_ver=${{matrix.cmake_ver || 'default'}}, umfd=${{matrix.umfd_lib || 'OFF'}})
272+ name : Basic (${{matrix.os}},
273+ compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}},
274+ shared_library=${{matrix.shared_library}},
275+ level_zero_provider=${{matrix.level_zero_provider}},
276+ cuda_provider=${{matrix.cuda_provider}},
277+ cmake_ver=${{matrix.cmake_ver || 'default'}},
278+ umfd=${{matrix.umfd_lib || 'OFF'}})
279+ extra_build_options=${{matrix.extra_build_options || ''}}
273280 runs-on : ${{matrix.os}}
274281
275282 steps :
@@ -308,7 +315,7 @@ jobs:
308315 uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
309316 with :
310317 vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
311- vcpkgDirectory : ${{env.BUILD_DIR }}/vcpkg
318+ vcpkgDirectory : ${{github.workspace }}/vcpkg
312319 vcpkgJsonGlob : ' **/vcpkg.json'
313320
314321 # Install the dependencies and add the bin folders to the PATH for older
@@ -326,12 +333,61 @@ jobs:
326333 echo "UMF_VERSION=$version" >> $env:GITHUB_ENV
327334 shell : pwsh
328335
329- - name : Configure build
336+ - name : Configure build (Debug)
330337 run : >
331338 cmake
332- -B ${{env.BUILD_DIR}}
339+ -B ${{env.BUILD_DEBUG_DIR}}
340+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR}}"
341+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
342+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
343+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
344+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
345+ -DUMF_FORMAT_CODE_STYLE=OFF
346+ -DUMF_DEVELOPER_MODE=ON
347+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
348+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
349+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
350+ -DUMF_TESTS_FAIL_ON_SKIP=ON
351+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
352+
353+ - name : Build UMF (Debug)
354+ run : cmake --build ${{env.BUILD_DEBUG_DIR}} --config Debug -j $Env:NUMBER_OF_PROCESSORS
355+
356+ - name : Run tests (Debug)
357+ working-directory : ${{env.BUILD_DEBUG_DIR}}
358+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
359+ # Extra paths without 'build_type' are set for NMake generator
360+ run : |
361+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
362+ if ($m) {
363+ $major = [int]$m.groups[1].Value
364+ $minor = [int]$m.groups[2].Value
365+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
366+ $env:Path = "${{env.BUILD_DEBUG_DIR}}/bin/Debug;${{env.BUILD_DEBUG_DIR}}/src/proxy_lib/Debug;$env:Path"
367+ $env:Path = "${{env.BUILD_DEBUG_DIR}}/bin/;${{env.BUILD_DEBUG_DIR}}/src/proxy_lib/;$env:Path"
368+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
369+ }
370+ }
371+ ctest -C Debug --output-on-failure --test-dir test
372+ shell : pwsh
373+
374+ - name : Test UMF installation and uninstallation (Debug)
375+ run : >
376+ python3 ${{github.workspace}}/test/test_installation.py
377+ --build-dir ${{env.BUILD_DEBUG_DIR}}
378+ --install-dir ${{env.INSTL_DEBUG_DIR}}
379+ --build-type Debug
380+ ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
381+ --umf-version ${{env.UMF_VERSION}}
382+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
383+ ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
384+
385+ - name : Configure build (Release)
386+ run : >
387+ cmake
388+ -B ${{env.BUILD_RELEASE_DIR}}
333389 ${{matrix.extra_build_options || ''}}
334- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR }}"
390+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR }}"
335391 -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
336392 -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
337393 -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
@@ -344,11 +400,11 @@ jobs:
344400 -DUMF_TESTS_FAIL_ON_SKIP=ON
345401 -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
346402
347- - name : Build UMF
348- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
403+ - name : Build UMF (Release)
404+ run : cmake --build ${{env.BUILD_RELEASE_DIR }} --config Release -j $Env:NUMBER_OF_PROCESSORS
349405
350- - name : Run tests
351- working-directory : ${{env.BUILD_DIR }}
406+ - name : Run tests (Release)
407+ working-directory : ${{env.BUILD_RELEASE_DIR }}
352408 # For CMake versions < 3.22 we have to add the build directory to the PATH manually
353409 # Extra paths without 'build_type' are set for NMake generator
354410 run : |
@@ -357,33 +413,33 @@ jobs:
357413 $major = [int]$m.groups[1].Value
358414 $minor = [int]$m.groups[2].Value
359415 if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
360- $env:Path = "${{env.BUILD_DIR }}/bin/${{matrix.build_type}} ;${{env.BUILD_DIR }}/src/proxy_lib/${{matrix.build_type}} ;$env:Path"
361- $env:Path = "${{env.BUILD_DIR }}/bin/;${{env.BUILD_DIR }}/src/proxy_lib/;$env:Path"
416+ $env:Path = "${{env.BUILD_RELEASE_DIR }}/bin/Release ;${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/Release ;$env:Path"
417+ $env:Path = "${{env.BUILD_RELEASE_DIR }}/bin/;${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/;$env:Path"
362418 echo "PATH=$env:Path" >> $env:GITHUB_ENV
363419 }
364420 }
365- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
421+ ctest -C Release --output-on-failure --test-dir test
366422 shell : pwsh
367423
368- - name : Test UMF installation and uninstallation
424+ - name : Test UMF installation and uninstallation (Release)
369425 run : >
370426 python3 ${{github.workspace}}/test/test_installation.py
371- --build-dir ${{env.BUILD_DIR }}
372- --install-dir ${{env.INSTL_DIR }}
373- --build-type ${{matrix.build_type}}
427+ --build-dir ${{env.BUILD_RELEASE_DIR }}
428+ --install-dir ${{env.INSTL_RELEASE_DIR }}
429+ --build-type Release
374430 ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
375431 --umf-version ${{env.UMF_VERSION}}
376432 ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
377433 ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
378434
379- - name : check /DEPENDENTLOADFLAG in umf.dll
435+ - name : check /DEPENDENTLOADFLAG in umf.dll (Release)
380436 if : ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
381- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR }}/bin/${{matrix.build_type}} /umf.dll
437+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/bin/Release /umf.dll
382438 shell : pwsh
383439
384- - name : check /DEPENDENTLOADFLAG in umf_proxy.dll
440+ - name : check /DEPENDENTLOADFLAG in umf_proxy.dll (Release)
385441 if : ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
386- run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR }}/src/proxy_lib/${{matrix.build_type}} /umf_proxy.dll
442+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/Release /umf_proxy.dll
387443 shell : pwsh
388444
389445 windows-dynamic_build_hwloc :
0 commit comments