Skip to content

Commit 1ae1fe6

Browse files
authored
Merge pull request #1378 from lukaszstolarczuk/enable-win-cmake-3.14
[CI] Workflows updates
2 parents 3a4a450 + 5aa03b1 commit 1ae1fe6

File tree

5 files changed

+86
-85
lines changed

5 files changed

+86
-85
lines changed

.github/workflows/nightly.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,56 @@ jobs:
333333
working-directory: ${{env.BUILD_DIR}}
334334
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
335335

336+
Windows-dynamic_mingw_hwloc:
337+
env:
338+
HWLOC_PACKAGE_NAME: hwloc-win64-build-2.10.0
339+
TBB_PACKAGE_NAME: oneapi-tbb-2021.12.0
340+
TBB_LIB_DIR: lib\intel64\vc14
341+
TBB_BIN_DIR: redist\intel64\vc14
342+
343+
name: "Windows dynamic UMF + mingw libhwloc"
344+
strategy:
345+
matrix:
346+
build_type: [Release]
347+
348+
runs-on: 'windows-latest'
349+
350+
steps:
351+
- name: Checkout
352+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
353+
with:
354+
fetch-depth: 0
355+
356+
- name: Get hwloc from official repo (mingw version)
357+
run: |
358+
Invoke-WebRequest -Uri https://download.open-mpi.org/release/hwloc/v2.10/${{env.HWLOC_PACKAGE_NAME}}.zip -OutFile ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -TimeoutSec 360
359+
Expand-Archive ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -DestinationPath ${{github.workspace}}
360+
361+
- name: Get TBB from github
362+
run: |
363+
Invoke-WebRequest -Uri https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/${{env.TBB_PACKAGE_NAME}}-win.zip -OutFile "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -TimeoutSec 360
364+
Expand-Archive "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -DestinationPath ${{github.workspace}}
365+
366+
- name: Configure build
367+
run: >
368+
cmake
369+
-B ${{env.BUILD_DIR}}
370+
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
371+
-DCMAKE_PREFIX_PATH="${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_LIB_DIR}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_BIN_DIR}}"
372+
-DUMF_BUILD_SHARED_LIBRARY=ON
373+
-DUMF_BUILD_EXAMPLES=ON
374+
-DUMF_FORMAT_CODE_STYLE=OFF
375+
-DUMF_DEVELOPER_MODE=ON
376+
-DUMF_TESTS_FAIL_ON_SKIP=ON
377+
-DUMF_HWLOC_NAME=libhwloc
378+
379+
- name: Build UMF
380+
run: cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
381+
382+
- name: Run tests
383+
working-directory: ${{env.BUILD_DIR}}
384+
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
385+
336386
L0:
337387
uses: ./.github/workflows/reusable_gpu.yml
338388
with:

.github/workflows/reusable_basic.yml

Lines changed: 31 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -235,44 +235,41 @@ jobs:
235235
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"
236236
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"
237237
strategy:
238-
# TODO: add '3.14.0-win64-x64' CMake testing
239238
matrix:
240239
os: ['windows-2022', 'windows-2025']
241240
build_type: [Debug, Release]
242241
compiler: [{c: cl, cxx: cl}]
243242
shared_library: ['ON', 'OFF']
244243
level_zero_provider: ['ON']
245244
cuda_provider: ['ON']
246-
cmake_ver: ['default']
247245
include:
248-
# clang-cl works well with Ninja, Debug build
249-
# For VS generator it produces build errors not related to UMF
246+
# extra job: Custom (old) CMake, clang-cl compiler
247+
# Note: This CMake uses NMake generator as VS paths are probably messed up (by CMake?)
250248
- os: 'windows-2025'
251-
build_type: Debug
249+
build_type: Release
250+
extra_build_options: '-DCMAKE_BUILD_TYPE=Release' # NMake generator requires this
252251
compiler: {c: clang-cl, cxx: clang-cl}
253-
extra_build_options: '-G Ninja'
254252
shared_library: 'ON'
255253
level_zero_provider: 'ON'
256254
cuda_provider: 'ON'
257-
cmake_ver: 'default'
258-
# Custom CMake and umfd enabled
255+
cmake_ver: '3.14.0-win64-x64'
256+
# extra job: Custom CMake, L0/CUDA providers disabled
259257
- os: 'windows-2025'
260258
build_type: Release
261259
compiler: {c: cl, cxx: cl}
262260
shared_library: 'ON'
263-
level_zero_provider: 'ON'
264-
cuda_provider: 'ON'
265-
umfd_lib: 'ON'
261+
level_zero_provider: 'OFF'
262+
cuda_provider: 'OFF'
266263
cmake_ver: '3.28.0-windows-x86_64'
267-
# L0/CUDA providers disabled
268-
- os: 'windows-2025'
264+
# umfd enabled (this job will replace one from matrix)
265+
- os: 'windows-2022'
269266
build_type: Release
270267
compiler: {c: cl, cxx: cl}
271268
shared_library: 'ON'
272-
level_zero_provider: 'OFF'
273-
cuda_provider: 'OFF'
274-
cmake_ver: 'default'
275-
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}})
269+
level_zero_provider: 'ON'
270+
cuda_provider: 'ON'
271+
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'}})
276273
runs-on: ${{matrix.os}}
277274

278275
steps:
@@ -282,7 +279,7 @@ jobs:
282279
fetch-depth: 0
283280

284281
- name: Install cmake (non-default version)
285-
if: matrix.cmake_ver != 'default'
282+
if: ${{ matrix.cmake_ver != 'default' && matrix.cmake_ver != '' }}
286283
run: |
287284
$ErrorActionPreference = "Stop"
288285
$cmakePath = "C:\Program Files\CMake"
@@ -300,6 +297,13 @@ jobs:
300297
Start-Process msiexec.exe -ArgumentList "/i $cmakeInstaller /quiet /norestart" -Wait
301298
cmake --version
302299
300+
# Ensure that the required environment is set
301+
# Note: While this step is required for the clang-cl compiler, it can be executed for all jobs
302+
- name: Setup MSVC dev command prompt
303+
uses: TheMrMilchmann/setup-msvc-dev@fb19abb8a41b3cf0340f5d1be17d420309232be6 # v3.0.1
304+
with:
305+
arch: x64
306+
303307
- name: Initialize vcpkg
304308
uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
305309
with:
@@ -338,22 +342,24 @@ jobs:
338342
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=${{matrix.level_zero_provider}}
339343
-DUMF_BUILD_CUDA_PROVIDER=${{matrix.cuda_provider}}
340344
-DUMF_TESTS_FAIL_ON_SKIP=ON
341-
-DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib}}
345+
-DUMF_USE_DEBUG_POSTFIX=${{matrix.umfd_lib || 'OFF'}}
342346
343347
- name: Build UMF
344348
run: cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
345349

346350
- name: Run tests
347351
working-directory: ${{env.BUILD_DIR}}
348-
# For CMake versions < 3.22 we have to add the build directory to the PATH
349-
# manually
352+
# For CMake versions < 3.22 we have to add the build directory to the PATH manually
353+
# Extra paths without 'build_type' are set for NMake generator
350354
run: |
351355
$m = [regex]::Matches((cmake --version), "cmake version (\d+)\.(\d+)\.(\d+)")
352356
if ($m) {
353357
$major = [int]$m.groups[1].Value
354358
$minor = [int]$m.groups[2].Value
355359
if ($major -lt 3 -or ($major -eq 3 -and $minor -lt 22)) {
356360
$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"
362+
echo "PATH=$env:Path" >> $env:GITHUB_ENV
357363
}
358364
}
359365
ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
@@ -369,7 +375,7 @@ jobs:
369375
--umf-version ${{env.UMF_VERSION}}
370376
${{ matrix.shared_library == 'ON' && '--shared-library' || ''}}
371377
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
372-
378+
373379
- name: check /DEPENDENTLOADFLAG in umf.dll
374380
if: ${{matrix.shared_library == 'ON' && matrix.compiler.cxx == 'cl'}}
375381
run: ${{github.workspace}}/.github/scripts/check_dll_flags.ps1 ${{env.BUILD_DIR}}/bin/${{matrix.build_type}}/umf.dll
@@ -458,61 +464,12 @@ jobs:
458464
working-directory: ${{env.BUILD_DIR}}
459465
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
460466

461-
windows-dynamic_mingw_hwloc:
462-
env:
463-
HWLOC_PACKAGE_NAME: hwloc-win64-build-2.10.0
464-
TBB_PACKAGE_NAME: oneapi-tbb-2021.12.0
465-
TBB_LIB_DIR: lib\intel64\vc14
466-
TBB_BIN_DIR: redist\intel64\vc14
467-
468-
name: "Windows dynamic UMF + mingw libhwloc"
469-
strategy:
470-
matrix:
471-
build_type: [Release]
472-
473-
runs-on: 'windows-latest'
474-
475-
steps:
476-
- name: Checkout
477-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
478-
with:
479-
fetch-depth: 0
480-
481-
- name: Get hwloc from official repo (mingw version)
482-
run: |
483-
Invoke-WebRequest -Uri https://download.open-mpi.org/release/hwloc/v2.10/${{env.HWLOC_PACKAGE_NAME}}.zip -OutFile ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -TimeoutSec 360
484-
Expand-Archive ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -DestinationPath ${{github.workspace}}
485-
486-
- name: Get TBB from github
487-
run: |
488-
Invoke-WebRequest -Uri https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/${{env.TBB_PACKAGE_NAME}}-win.zip -OutFile "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -TimeoutSec 360
489-
Expand-Archive "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -DestinationPath ${{github.workspace}}
490-
491-
- name: Configure build
492-
run: >
493-
cmake
494-
-B ${{env.BUILD_DIR}}
495-
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
496-
-DCMAKE_PREFIX_PATH="${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_LIB_DIR}};${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}\${{env.TBB_BIN_DIR}}"
497-
-DUMF_BUILD_SHARED_LIBRARY=ON
498-
-DUMF_BUILD_EXAMPLES=ON
499-
-DUMF_FORMAT_CODE_STYLE=OFF
500-
-DUMF_DEVELOPER_MODE=ON
501-
-DUMF_TESTS_FAIL_ON_SKIP=ON
502-
-DUMF_HWLOC_NAME=libhwloc
503-
504-
- name: Build UMF
505-
run: cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
506-
507-
- name: Run tests
508-
working-directory: ${{env.BUILD_DIR}}
509-
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
510-
511467
macos-build:
512468
strategy:
513469
matrix:
514-
os: ['macos-13', 'macos-14']
515470
include:
471+
- os: macos-13
472+
static_hwloc: 'OFF'
516473
- os: macos-14
517474
static_hwloc: 'ON'
518475
env:
@@ -538,7 +495,7 @@ jobs:
538495
run: brew install jemalloc tbb automake libtool
539496

540497
- name: Install hwloc
541-
if: ${{ !matrix.static_hwloc }}
498+
if: ${{ matrix.static_hwloc == 'OFF' }}
542499
run: brew install hwloc
543500

544501
- name: Get UMF version
@@ -559,7 +516,6 @@ jobs:
559516
-DUMF_BUILD_SHARED_LIBRARY=ON
560517
-DUMF_TESTS_FAIL_ON_SKIP=ON
561518
-DUMF_LINK_HWLOC_STATICALLY=${{matrix.static_hwloc}}
562-
${{matrix.static_hwloc}}
563519
564520
- name: Build UMF
565521
run: cmake --build ${{env.BUILD_DIR}} -j $(sysctl -n hw.logicalcpu)

.github/workflows/reusable_dax.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
shared_library: ['ON', 'OFF']
4444
name: DAX (ubuntu, build_type=${{matrix.build_type}}, shared_library=${{matrix.shared_library}})
4545
runs-on: ["DSS-DEVDAX", "DSS-Ubuntu"]
46-
46+
4747
steps:
4848
- name: Check configuration of the DEVDAX
4949
run: |

.github/workflows/reusable_proxy_lib.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
build_type: [Release, Debug]
2020
compiler: [{c: gcc, cxx: g++}]
2121
proxy_lib_pool: ['SCALABLE', 'JEMALLOC']
22-
name: Proxy Library (ubuntu-22.04, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, proxy_lib_pool=${{matrix.proxy_lib_pool}})
22+
name: Proxy Library (ubuntu-22.04, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, proxy_lib_pool=${{matrix.proxy_lib_pool}})
2323
runs-on: ${{ github.repository_owner == 'oneapi-src' && 'intel-ubuntu-22.04' || 'ubuntu-22.04' }}
2424

2525
steps:

.github/workflows/reusable_sanitizers.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,12 @@ jobs:
9191
with:
9292
fetch-depth: 0
9393

94-
# Use the latest MSVC toolset available, when compiling UMF with ASan.
95-
# Running binaries compiled with older toolsets results in a
96-
# 'STATUS_DLL_INIT_FAILED' error despite being linked with ASan from
97-
# the same toolset as the compiler being used.
98-
# https://github.com/actions/runner-images/issues/8891
94+
# Ensure that the required environment is set
95+
# Note: No need to specify version, the latest one will be used and should work fine
9996
- name: Setup MSVC dev command prompt
100-
if: matrix.sanitizers.asan == 'ON'
10197
uses: TheMrMilchmann/setup-msvc-dev@fb19abb8a41b3cf0340f5d1be17d420309232be6 # v3.0.1
10298
with:
10399
arch: x64
104-
toolset: '14'
105100

106101
- name: Initialize vcpkg
107102
uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
@@ -112,7 +107,7 @@ jobs:
112107

113108
- name: Install dependencies
114109
run: vcpkg install --triplet x64-windows
115-
shell: pwsh # Specifies PowerShell as the shell for running the script.
110+
shell: pwsh
116111

117112
- name: Configure build
118113
run: >

0 commit comments

Comments
 (0)