@@ -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,19 @@ 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}}, 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'}})
273273 runs-on : ${{matrix.os}}
274274
275275 steps :
@@ -308,7 +308,7 @@ jobs:
308308 uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
309309 with :
310310 vcpkgGitCommitId : ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
311- vcpkgDirectory : ${{env.BUILD_DIR }}/vcpkg
311+ vcpkgDirectory : ${{github.workspace }}/vcpkg
312312 vcpkgJsonGlob : ' **/vcpkg.json'
313313
314314 # Install the dependencies and add the bin folders to the PATH for older
@@ -326,12 +326,12 @@ jobs:
326326 echo "UMF_VERSION=$version" >> $env:GITHUB_ENV
327327 shell : pwsh
328328
329- - name : Configure build
329+ - name : Configure build (Debug)
330330 run : >
331331 cmake
332- -B ${{env.BUILD_DIR }}
332+ -B ${{env.BUILD_DEBUG_DIR }}
333333 ${{matrix.extra_build_options || ''}}
334- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR }}"
334+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR }}"
335335 -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
336336 -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
337337 -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
@@ -344,11 +344,11 @@ jobs:
344344 -DUMF_TESTS_FAIL_ON_SKIP=ON
345345 -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
346346
347- - name : Build UMF
348- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
347+ - name : Build UMF (Debug)
348+ run : cmake --build ${{env.BUILD_DEBUG_DIR }} --config Debug -j $Env:NUMBER_OF_PROCESSORS
349349
350- - name : Run tests
351- working-directory : ${{env.BUILD_DIR }}
350+ - name : Run tests (Debug)
351+ working-directory : ${{env.BUILD_DEBUG_DIR }}
352352 # For CMake versions < 3.22 we have to add the build directory to the PATH manually
353353 # Extra paths without 'build_type' are set for NMake generator
354354 run : |
@@ -357,33 +357,83 @@ jobs:
357357 $major = [int]$m.groups[1].Value
358358 $minor = [int]$m.groups[2].Value
359359 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"
360+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/Debug ;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/Debug ;$env:Path"
361+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/;$env:Path"
362362 echo "PATH=$env:Path" >> $env:GITHUB_ENV
363363 }
364364 }
365- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
365+ ctest -C Debug --output-on-failure --test-dir test
366366 shell : pwsh
367367
368- - name : Test UMF installation and uninstallation
368+ - name : Test UMF installation and uninstallation (Debug)
369369 run : >
370370 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}}
371+ --build-dir ${{env.BUILD_DEBUG_DIR }}
372+ --install-dir ${{env.INSTL_DEBUG_DIR }}
373+ --build-type Debug
374374 ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
375375 --umf-version ${{env.UMF_VERSION}}
376376 ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
377377 ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
378378
379- - name : check /DEPENDENTLOADFLAG in umf.dll
379+ - name : Configure build (Release)
380+ run : >
381+ cmake
382+ -B ${{env.BUILD_RELEASE_DIR}}
383+ ${{matrix.extra_build_options || ''}}
384+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR}}"
385+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
386+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
387+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
388+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
389+ -DUMF_FORMAT_CODE_STYLE=OFF
390+ -DUMF_DEVELOPER_MODE=ON
391+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
392+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
393+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
394+ -DUMF_TESTS_FAIL_ON_SKIP=ON
395+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
396+
397+ - name : Build UMF (Release)
398+ run : cmake --build ${{env.BUILD_RELEASE_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
399+
400+ - name : Run tests (Release)
401+ working-directory : ${{env.BUILD_RELEASE_DIR}}
402+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
403+ # Extra paths without 'build_type' are set for NMake generator
404+ run : |
405+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
406+ if ($m) {
407+ $major = [int]$m.groups[1].Value
408+ $minor = [int]$m.groups[2].Value
409+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
410+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/Release;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/Release;$env:Path"
411+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/;$env:Path"
412+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
413+ }
414+ }
415+ ctest -C Release --output-on-failure --test-dir test
416+ shell : pwsh
417+
418+ - name : Test UMF installation and uninstallation (Release)
419+ run : >
420+ python3 ${{github.workspace}}/test/test_installation.py
421+ --build-dir ${{env.BUILD_RELEASE_DIR}}
422+ --install-dir ${{env.INSTL_RELEASE_DIR}}
423+ --build-type Release
424+ ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
425+ --umf-version ${{env.UMF_VERSION}}
426+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
427+ ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
428+
429+ - name : check /DEPENDENTLOADFLAG in umf.dll (Release)
380430 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
431+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/bin/Release /umf.dll
382432 shell : pwsh
383433
384- - name : check /DEPENDENTLOADFLAG in umf_proxy.dll
434+ - name : check /DEPENDENTLOADFLAG in umf_proxy.dll (Release)
385435 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
436+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/Release /umf_proxy.dll
387437 shell : pwsh
388438
389439 windows-dynamic_build_hwloc :
0 commit comments