@@ -8,8 +8,10 @@ permissions:
88 packages : read
99
1010env :
11- BUILD_DIR : " ${{github.workspace}}/build"
12- INSTL_DIR : " ${{github.workspace}}/install-dir"
11+ BUILD_DEBUG_DIR : " ${{github.workspace}}/debug/build"
12+ INSTL_DEBUG_DIR : " ${{github.workspace}}/debug/install-dir"
13+ BUILD_RELEASE_DIR : " ${{github.workspace}}/release/build"
14+ INSTL_RELEASE_DIR : " ${{github.workspace}}/release/install-dir"
1315 COVERAGE_DIR : " ${{github.workspace}}/coverage"
1416 COVERAGE_NAME : " exports-coverage-basic"
1517
@@ -232,12 +234,11 @@ jobs:
232234
233235 windows-build :
234236 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"
237+ VCPKG_PATH : " ${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
238+ 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"
237239 strategy :
238240 matrix :
239241 os : ['windows-2022', 'windows-2025']
240- build_type : [Debug, Release]
241242 compiler : [{c: cl, cxx: cl}]
242243 shared_library : ['ON', 'OFF']
243244 level_zero_provider : ['ON']
@@ -246,7 +247,6 @@ jobs:
246247 # extra job: Custom (old) CMake, clang-cl compiler
247248 # Note: This CMake uses NMake generator as VS paths are probably messed up (by CMake?)
248249 - os : ' windows-2025'
249- build_type : Release
250250 extra_build_options : ' -DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
251251 compiler : {c: clang-cl, cxx: clang-cl}
252252 shared_library : ' ON'
@@ -255,21 +255,19 @@ jobs:
255255 cmake_ver : ' 3.14.0-win64-x64'
256256 # extra job: Custom CMake, L0/CUDA providers disabled
257257 - os : ' windows-2025'
258- build_type : Release
259258 compiler : {c: cl, cxx: cl}
260259 shared_library : ' ON'
261260 level_zero_provider : ' OFF'
262261 cuda_provider : ' OFF'
263262 cmake_ver : ' 3.28.0-windows-x86_64'
264263 # umfd enabled (this job will replace one from matrix)
265264 - os : ' windows-2022'
266- build_type : Release
267265 compiler : {c: cl, cxx: cl}
268266 shared_library : ' ON'
269267 level_zero_provider : ' ON'
270268 cuda_provider : ' ON'
271269 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'}})
270+ 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'}})
273271 runs-on : ${{matrix.os}}
274272
275273 steps :
@@ -326,12 +324,12 @@ jobs:
326324 echo "UMF_VERSION=$version" >> $env:GITHUB_ENV
327325 shell : pwsh
328326
329- - name : Configure build
327+ - name : Configure build (Debug)
330328 run : >
331329 cmake
332- -B ${{env.BUILD_DIR }}
330+ -B ${{env.BUILD_DEBUG_DIR }}
333331 ${{matrix.extra_build_options || ''}}
334- -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR }}"
332+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_DEBUG_DIR }}"
335333 -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
336334 -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
337335 -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
@@ -344,11 +342,11 @@ jobs:
344342 -DUMF_TESTS_FAIL_ON_SKIP=ON
345343 -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
346344
347- - name : Build UMF
348- run : cmake --build ${{env.BUILD_DIR }} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
345+ - name : Build UMF (Debug)
346+ run : cmake --build ${{env.BUILD_DEBUG_DIR }} --config Debug -j $Env:NUMBER_OF_PROCESSORS
349347
350- - name : Run tests
351- working-directory : ${{env.BUILD_DIR }}
348+ - name : Run tests (Debug)
349+ working-directory : ${{env.BUILD_DEBUG_DIR }}
352350 # For CMake versions < 3.22 we have to add the build directory to the PATH manually
353351 # Extra paths without 'build_type' are set for NMake generator
354352 run : |
@@ -357,33 +355,83 @@ jobs:
357355 $major = [int]$m.groups[1].Value
358356 $minor = [int]$m.groups[2].Value
359357 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"
358+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/Debug ;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/Debug ;$env:Path"
359+ $env:Path = "${{env.BUILD_DEBUG_DIR }}/bin/;${{env.BUILD_DEBUG_DIR }}/src/proxy_lib/;$env:Path"
362360 echo "PATH=$env:Path" >> $env:GITHUB_ENV
363361 }
364362 }
365- ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
363+ ctest -C Debug --output-on-failure --test-dir test
366364 shell : pwsh
367365
368- - name : Test UMF installation and uninstallation
366+ - name : Test UMF installation and uninstallation (Debug)
369367 run : >
370368 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}}
369+ --build-dir ${{env.BUILD_DEBUG_DIR }}
370+ --install-dir ${{env.INSTL_DEBUG_DIR }}
371+ --build-type Debug
374372 ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
375373 --umf-version ${{env.UMF_VERSION}}
376374 ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
377375 ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
378376
379- - name : check /DEPENDENTLOADFLAG in umf.dll
377+ - name : Configure build (Release)
378+ run : >
379+ cmake
380+ -B ${{env.BUILD_RELEASE_DIR}}
381+ ${{matrix.extra_build_options || ''}}
382+ -DCMAKE_INSTALL_PREFIX="${{env.INSTL_RELEASE_DIR}}"
383+ -DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
384+ -DCMAKE_C_COMPILER=${{matrix.compiler.c}}
385+ -DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
386+ -DUMF_BUILD_SHARED_LIBRARY=${{matrix.shared_library}}
387+ -DUMF_FORMAT_CODE_STYLE=OFF
388+ -DUMF_DEVELOPER_MODE=ON
389+ -DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
390+ -DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
391+ -DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
392+ -DUMF_TESTS_FAIL_ON_SKIP=ON
393+ -DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
394+
395+ - name : Build UMF (Release)
396+ run : cmake --build ${{env.BUILD_RELEASE_DIR}} --config Release -j $Env:NUMBER_OF_PROCESSORS
397+
398+ - name : Run tests (Release)
399+ working-directory : ${{env.BUILD_RELEASE_DIR}}
400+ # For CMake versions < 3.22 we have to add the build directory to the PATH manually
401+ # Extra paths without 'build_type' are set for NMake generator
402+ run : |
403+ $m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
404+ if ($m) {
405+ $major = [int]$m.groups[1].Value
406+ $minor = [int]$m.groups[2].Value
407+ if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
408+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/Release;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/Release;$env:Path"
409+ $env:Path = "${{env.BUILD_RELEASE_DIR}}/bin/;${{env.BUILD_RELEASE_DIR}}/src/proxy_lib/;$env:Path"
410+ echo "PATH=$env:Path" >> $env:GITHUB_ENV
411+ }
412+ }
413+ ctest -C Release --output-on-failure --test-dir test
414+ shell : pwsh
415+
416+ - name : Test UMF installation and uninstallation (Release)
417+ run : >
418+ python3 ${{github.workspace}}/test/test_installation.py
419+ --build-dir ${{env.BUILD_RELEASE_DIR}}
420+ --install-dir ${{env.INSTL_RELEASE_DIR}}
421+ --build-type Release
422+ ${{matrix.shared_library == 'ON' && '--proxy' || '' }}
423+ --umf-version ${{env.UMF_VERSION}}
424+ ${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
425+ ${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
426+
427+ - name : check /DEPENDENTLOADFLAG in umf.dll (Release)
380428 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
429+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/bin/Release /umf.dll
382430 shell : pwsh
383431
384- - name : check /DEPENDENTLOADFLAG in umf_proxy.dll
432+ - name : check /DEPENDENTLOADFLAG in umf_proxy.dll (Release)
385433 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
434+ run : ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_RELEASE_DIR }}/src/proxy_lib/Release /umf_proxy.dll
387435 shell : pwsh
388436
389437 windows-dynamic_build_hwloc :
0 commit comments