Skip to content

Commit 94bc4ae

Browse files
Merge pull request #1364 from lukaszstolarczuk/ci-changes
Several CI changes
2 parents 80392ee + 79e64f6 commit 94bc4ae

13 files changed

+112
-102
lines changed

.github/scripts/install_oneAPI.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
# install_oneAPI.sh - Script for installing Intel oneAPI from the official repository
77

88
apt-get update
9-
apt-get install -y gpg-agent gnupg
9+
apt-get install -y gpg-agent gnupg wget
1010
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor -o /usr/share/keyrings/oneapi-archive-keyring.gpg
1111
echo 'deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main' > /etc/apt/sources.list.d/oneAPI.list
1212
apt-get update

.github/workflows/detect_changes.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212

1313
permissions:
1414
contents: read
15+
packages: read
1516

1617
jobs:
1718
DetectChanges:

.github/workflows/nightly.yml

Lines changed: 71 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,67 @@ on:
99

1010
permissions:
1111
contents: read
12+
pull-requests: read
1213

1314
env:
1415
BUILD_DIR : "${{github.workspace}}/build"
1516
INSTALL_DIR: "${{github.workspace}}/build/install"
1617

1718
jobs:
18-
fuzz-test:
19-
strategy:
20-
fail-fast: false
21-
matrix:
22-
build_type: [Debug, Release]
23-
compiler: [{c: clang, cxx: clang++}]
24-
name: Fuzz test (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
25-
runs-on: ubuntu-latest
26-
27-
steps:
28-
- name: Checkout repository
29-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30-
with:
31-
fetch-depth: 0
32-
33-
- name: Install apt packages
34-
run: |
35-
sudo apt-get update
36-
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev
37-
38-
- name: Find Clang fuzzer lib
39-
run: |
40-
CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
41-
echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV
42-
43-
- name: Configure CMake
44-
run: >
45-
cmake
46-
-B ${{github.workspace}}/build
47-
-DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
48-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
49-
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
50-
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
51-
-DUMF_BUILD_SHARED_LIBRARY=ON
52-
-DUMF_TESTS_FAIL_ON_SKIP=ON
53-
-DUMF_DEVELOPER_MODE=ON
54-
-DUMF_BUILD_FUZZTESTS=ON
55-
56-
- name: Build
57-
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)
58-
59-
- name: Run regular tests
60-
working-directory: ${{github.workspace}}/build
61-
run: ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
62-
63-
- name: Run regular tests with proxy library
64-
working-directory: ${{env.BUILD_DIR}}
65-
run: LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
66-
67-
- name: Fuzz long test
68-
working-directory: ${{github.workspace}}/build
69-
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
70-
71-
valgrind:
19+
Fuzzing:
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
build_type: [Debug, Release]
24+
compiler: [{c: clang, cxx: clang++}]
25+
name: Fuzzing (ubuntu-latest, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}})
26+
runs-on: ubuntu-latest
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
31+
with:
32+
fetch-depth: 0
33+
34+
- name: Install apt packages
35+
run: |
36+
sudo apt-get update
37+
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev
38+
39+
- name: Find Clang fuzzer lib
40+
run: |
41+
CLANG_LIBS_DIR=$(find /usr/lib -name "libclang_rt.fuzzer_no_main-x86_64.a" -exec dirname {} \; | head -n 1)
42+
echo "CLANG_LIBS_DIR=${CLANG_LIBS_DIR}" >> $GITHUB_ENV
43+
44+
- name: Configure CMake
45+
run: >
46+
cmake
47+
-B ${{github.workspace}}/build
48+
-DCMAKE_PREFIX_PATH=${{env.CLANG_LIBS_DIR}}
49+
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
50+
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
51+
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
52+
-DUMF_BUILD_SHARED_LIBRARY=ON
53+
-DUMF_TESTS_FAIL_ON_SKIP=ON
54+
-DUMF_DEVELOPER_MODE=ON
55+
-DUMF_BUILD_FUZZTESTS=ON
56+
57+
- name: Build
58+
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)
59+
60+
- name: Run regular tests
61+
working-directory: ${{github.workspace}}/build
62+
run: ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
63+
64+
- name: Run regular tests with proxy library
65+
working-directory: ${{env.BUILD_DIR}}
66+
run: LD_PRELOAD=./lib/libumf_proxy.so ctest -C ${{matrix.build_type}} --output-on-failure -E "fuzz"
67+
68+
- name: Fuzz long test
69+
working-directory: ${{github.workspace}}/build
70+
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
71+
72+
Valgrind:
7273
strategy:
7374
fail-fast: false
7475
matrix:
@@ -106,6 +107,7 @@ jobs:
106107
- name: Run tests under valgrind
107108
run: ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}
108109

110+
# Build and test UMF with different CMake generators on Windows
109111
Windows-generators:
110112
strategy:
111113
matrix:
@@ -199,12 +201,13 @@ jobs:
199201
${{ matrix.umfd_lib == 'ON' && '--umfd-lib' || ''}}
200202
${{ matrix.static_hwloc == 'ON' && '--hwloc' || '' }}
201203
202-
icx:
204+
# Build and test UMF with Intel C++ Compiler (ICX) on Windows
205+
Windows-icx:
203206
env:
204207
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"
205208
strategy:
206209
matrix:
207-
os: ['windows-2019', 'windows-2022']
210+
os: ['windows-2022', 'windows-2025']
208211
build_type: [Debug]
209212
compiler: [{c: icx, cxx: icx}]
210213
shared_library: ['ON', 'OFF']
@@ -215,40 +218,40 @@ jobs:
215218
shared_library: 'ON'
216219
name: ICX (${{matrix.os}}, build_type=${{matrix.build_type}}, compilers=${{matrix.compiler.c}}/${{matrix.compiler.cxx}}, shared_library=${{matrix.shared_library}})
217220
runs-on: ${{matrix.os}}
218-
221+
219222
steps:
220223
- name: Checkout
221224
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
222225
with:
223226
fetch-depth: 0
224-
227+
225228
- name: Initialize vcpkg
226229
uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
227230
with:
228231
vcpkgGitCommitId: ea2a964f9303270322cf3f2d51c265ba146c422d # 1.04.2025
229232
vcpkgDirectory: ${{env.BUILD_DIR}}/vcpkg
230233
vcpkgJsonGlob: '**/vcpkg.json'
231-
234+
232235
- name: Install dependencies
233236
run: vcpkg install --triplet x64-windows
234-
237+
235238
- name: Install Ninja
236239
uses: seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6
237-
240+
238241
- name: Download icx compiler
239242
env:
240243
# Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
241244
CMPLR_LINK: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/15a35578-2f9a-4f39-804b-3906e0a5f8fc/w_dpcpp-cpp-compiler_p_2024.2.1.83_offline.exe"
242245
run: |
243246
Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe
244-
247+
245248
- name: Install icx compiler
246249
shell: cmd
247250
run: |
248251
start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
249252
extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
250253
-p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.
251-
254+
252255
- name: Configure build
253256
shell: cmd
254257
run: |
@@ -267,14 +270,14 @@ jobs:
267270
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
268271
-DUMF_BUILD_CUDA_PROVIDER=ON ^
269272
-DUMF_TESTS_FAIL_ON_SKIP=ON
270-
273+
271274
- name: Build UMF
272275
shell: cmd
273276
run: |
274277
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
275278
call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
276279
cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%
277-
280+
278281
- name: Run tests
279282
shell: cmd
280283
working-directory: ${{env.BUILD_DIR}}
@@ -285,8 +288,7 @@ jobs:
285288
286289
# Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
287290
# The hwloc library is fetched implicitly
288-
hwloc-fallback:
289-
291+
Hwloc-fallback:
290292
strategy:
291293
matrix:
292294
include:
@@ -366,6 +368,8 @@ jobs:
366368
pr_no: '0'
367369
bench_script_params: '--save Baseline_PVC'
368370

371+
# Run benchmarks with the latest SYCL (with the latest UMF copied into the SYCL)
372+
# to verify the compatibility.
369373
Benchmarks-sycl:
370374
uses: ./.github/workflows/reusable_benchmarks.yml
371375
permissions:

.github/workflows/reusable_basic.yml

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,6 @@ jobs:
221221
run: rm -rf ${{env.INSTL_DIR}}
222222

223223
- name: Test UMF installation and uninstallation
224-
# The '--shared-library' parameter is added to the installation test when the UMF is built as a shared library
225224
run: >
226225
python3 ${{github.workspace}}/test/test_installation.py
227226
--build-dir ${{env.BUILD_DIR}}
@@ -236,33 +235,37 @@ jobs:
236235
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"
237236
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"
238237
strategy:
238+
# TODO: add '3.14.0-win64-x64' CMake testing
239239
matrix:
240-
os: ['windows-2019', 'windows-2022']
240+
os: ['windows-2022', 'windows-2025']
241241
build_type: [Debug, Release]
242242
compiler: [{c: cl, cxx: cl}]
243243
shared_library: ['ON', 'OFF']
244244
level_zero_provider: ['ON']
245245
cuda_provider: ['ON']
246246
cmake_ver: ['default']
247247
include:
248-
- os: 'windows-2019'
249-
# clang build fails on Windows 2022
250-
build_type: Release
248+
# clang-cl works well with Ninja, Debug build
249+
# For VS generator it produces build errors not related to UMF
250+
- os: 'windows-2025'
251+
build_type: Debug
251252
compiler: {c: clang-cl, cxx: clang-cl}
253+
extra_build_options: '-G Ninja'
252254
shared_library: 'ON'
253255
level_zero_provider: 'ON'
254256
cuda_provider: 'ON'
255-
toolset: "-T ClangCL"
256-
cmake_ver: '3.14.0-win64-x64'
257-
- os: 'windows-2022'
257+
cmake_ver: 'default'
258+
# Custom CMake and umfd enabled
259+
- os: 'windows-2025'
258260
build_type: Release
259261
compiler: {c: cl, cxx: cl}
260262
shared_library: 'ON'
261263
level_zero_provider: 'ON'
262264
cuda_provider: 'ON'
263265
umfd_lib: 'ON'
264266
cmake_ver: '3.28.0-windows-x86_64'
265-
- os: 'windows-2022'
267+
# L0/CUDA providers disabled
268+
- os: 'windows-2025'
266269
build_type: Release
267270
compiler: {c: cl, cxx: cl}
268271
shared_library: 'ON'
@@ -308,10 +311,10 @@ jobs:
308311
# versions of CMake to correctly locate the libraries
309312
- name: Install dependencies
310313
run: |
311-
vcpkg install --triplet x64-windows
314+
vcpkg install --triplet x64-windows
312315
$env:Path = "${{env.VCPKG_PATH_BIN}};$env:Path"
313316
echo "PATH=$env:Path" >> $env:GITHUB_ENV
314-
shell: pwsh # Specifies PowerShell as the shell for running the script.
317+
shell: pwsh
315318

316319
- name: Get UMF version
317320
run: |
@@ -323,7 +326,7 @@ jobs:
323326
run: >
324327
cmake
325328
-B ${{env.BUILD_DIR}}
326-
${{matrix.toolset}}
329+
${{matrix.extra_build_options || ''}}
327330
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
328331
-DCMAKE_PREFIX_PATH="${{env.VCPKG_PATH}}"
329332
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
@@ -357,8 +360,6 @@ jobs:
357360
shell: pwsh
358361

359362
- name: Test UMF installation and uninstallation
360-
# The '--shared-library' parameter is added to the installation test when
361-
# the UMF is built as a shared library
362363
run: >
363364
python3 ${{github.workspace}}/test/test_installation.py
364365
--build-dir ${{env.BUILD_DIR}}
@@ -385,7 +386,7 @@ jobs:
385386
matrix:
386387
build_type: [Release]
387388

388-
runs-on: 'windows-2022'
389+
runs-on: 'windows-latest'
389390

390391
steps:
391392
- name: Checkout
@@ -427,7 +428,7 @@ jobs:
427428
matrix:
428429
build_type: [Release]
429430

430-
runs-on: 'windows-2022'
431+
runs-on: 'windows-latest'
431432

432433
steps:
433434
- name: Checkout
@@ -469,7 +470,7 @@ jobs:
469470
matrix:
470471
build_type: [Release]
471472

472-
runs-on: 'windows-2022'
473+
runs-on: 'windows-latest'
473474

474475
steps:
475476
- name: Checkout

.github/workflows/reusable_benchmarks.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ on:
3131
3232
permissions:
3333
contents: read
34+
pull-requests: read
3435

3536
env:
3637
UMF_DIR: "${{github.workspace}}/umf-repo"

.github/workflows/reusable_codeql.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on: workflow_call
55

66
permissions:
77
contents: read
8+
security-events: read
89

910
env:
1011
BUILD_DIR : "${{github.workspace}}/build"

.github/workflows/reusable_compatibility.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ jobs:
126126
env:
127127
VCPKG_PATH: "${{github.workspace}}/vcpkg/packages/hwloc_x64-windows;${{github.workspace}}/vcpkg/packages/tbb_x64-windows;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows"
128128
VCPKG_BIN_PATH: "${{github.workspace}}/vcpkg/packages/hwloc_x64-windows/bin;${{github.workspace}}/vcpkg/packages/tbb_x64-windows/bin;${{github.workspace}}/vcpkg/packages/jemalloc_x64-windows/bin"
129-
runs-on: "windows-2022"
129+
runs-on: "windows-latest"
130130

131131
steps:
132132
- name: Checkout "tag" UMF version

0 commit comments

Comments
 (0)