@@ -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,30 +249,34 @@ 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
250- extra_build_options : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
252+ extra_release_build_type : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
251253 compiler : {c: clang-cl, cxx: clang-cl}
252254 shared_library : ' ON'
253255 level_zero_provider : ' ON'
254256 cuda_provider : ' ON'
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=${{matrix.extra_release_build_type || ''}}
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,11 @@ 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}}
333- ${{matrix.extra_build_options || ''}}
334- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
339+ -B ${{env.BUILD_DEBUG_DIR}}
340+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR}}"
335341 -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
336342 -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
337343 -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
@@ -344,11 +350,11 @@ jobs:
344350 -DUMF_TESTS_FAIL_ON_SKIP=ON
345351 -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
346352
347- - name : Build UMF
348- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
353+ - name : Build UMF (Debug)
354+ run : cmake --build ${{env.BUILD_DEBUG_DIR }} --config Debug -j $Env:NUMBER_OF_PROCESSORS
349355
350- - name : Run tests
351- working-directory : ${{env.BUILD_DIR }}
356+ - name : Run tests (Debug)
357+ working-directory : ${{env.BUILD_DEBUG_DIR }}
352358 # For CMake versions < 3.22 we have to add the build directory to the PATH manually
353359 # Extra paths without 'build_type' are set for NMake generator
354360 run : |
@@ -357,33 +363,83 @@ jobs:
357363 $major = [int]$m.groups[1].Value
358364 $minor = [int]$m.groups[2].Value
359365 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"
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"
362368 echo "PATH=$env:Path" >> $env:GITHUB_ENV
363369 }
364370 }
365- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
371+ ctest -C Debug --output-on-failure --test-dir test
366372 shell : pwsh
367373
368- - name : Test UMF installation and uninstallation
374+ - name : Test UMF installation and uninstallation (Debug)
369375 run : >
370376 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}}
377+ --build-dir ${{env.BUILD_DEBUG_DIR }}
378+ --install-dir ${{env.INSTL_DEBUG_DIR }}
379+ --build-type Debug
374380 ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
375381 --umf-version ${{env.UMF_VERSION}}
376382 ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
377383 ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
378384
379- - name : check /DEPENDENTLOADFLAG in umf.dll
385+ - name : Configure build (Release)
386+ run : >
387+ cmake
388+ -B ${{env.BUILD_RELEASE_DIR}}
389+ ${{matrix.extra_release_build_type || ''}}
390+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR}}"
391+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
392+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
393+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
394+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
395+ -DUMF_FORMAT_CODE_STYLE=OFF
396+ -DUMF_DEVELOPER_MODE=ON
397+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
398+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
399+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
400+ -DUMF_TESTS_FAIL_ON_SKIP=ON
401+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
402+
403+ - name : Build UMF (Release)
404+ run : cmake --build ${{env.BUILD_RELEASE_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
405+
406+ - name : Run tests (Release)
407+ working-directory : ${{env.BUILD_RELEASE_DIR}}
408+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
409+ # Extra paths without 'build_type' are set for NMake generator
410+ run : |
411+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
412+ if ($m) {
413+ $major = [int]$m.groups[1].Value
414+ $minor = [int]$m.groups[2].Value
415+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
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"
418+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
419+ }
420+ }
421+ ctest -C Release --output-on-failure --test-dir test
422+ shell : pwsh
423+
424+ - name : Test UMF installation and uninstallation (Release)
425+ run : >
426+ python3 ${{github.workspace}}/test/test_installation.py
427+ --build-dir ${{env.BUILD_RELEASE_DIR}}
428+ --install-dir ${{env.INSTL_RELEASE_DIR}}
429+ --build-type Release
430+ ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
431+ --umf-version ${{env.UMF_VERSION}}
432+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
433+ ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
434+
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