Skip to content

Commit eeb6d4b

Browse files
committed
fix win
1 parent 58f134c commit eeb6d4b

File tree

2 files changed

+10
-358
lines changed

2 files changed

+10
-358
lines changed

.github/workflows/nightly.yml

Lines changed: 9 additions & 280 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,25 @@
11
# Various non-standard tests, requiring e.g. longer run
22
name: Nightly
33

4-
# This job is run at 04:00 UTC every day or on demand.
54
on:
6-
workflow_dispatch:
7-
schedule:
8-
- cron: '0 4 * * *'
5+
push:
6+
branches-ignore:
7+
- 'dependabot/**'
8+
pull_request:
9+
10+
concurrency:
11+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
12+
cancel-in-progress: true
913

1014
permissions:
1115
contents: read
12-
pull-requests: read
16+
packages: read
1317

1418
env:
1519
BUILD_DIR : "${{github.workspace}}/build"
1620
INSTALL_DIR: "${{github.workspace}}/build/install"
1721

1822
jobs:
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
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:
73-
strategy:
74-
fail-fast: false
75-
matrix:
76-
tool: ['memcheck', 'drd', 'helgrind']
77-
name: Valgrind (${{matrix.tool}})
78-
runs-on: ubuntu-latest
79-
80-
steps:
81-
- name: Checkout repository
82-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
83-
with:
84-
fetch-depth: 0
85-
86-
- name: Install apt packages
87-
run: |
88-
sudo apt-get update
89-
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev valgrind
90-
91-
- name: Configure CMake
92-
run: >
93-
cmake
94-
-B ${{github.workspace}}/build
95-
-DCMAKE_BUILD_TYPE=Debug
96-
-DUMF_FORMAT_CODE_STYLE=OFF
97-
-DUMF_DEVELOPER_MODE=OFF
98-
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
99-
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=OFF
100-
-DUMF_BUILD_CUDA_PROVIDER=OFF
101-
-DUMF_USE_VALGRIND=1
102-
-DUMF_TESTS_FAIL_ON_SKIP=ON
103-
104-
- name: Build
105-
run: cmake --build ${{github.workspace}}/build --config Debug -j$(nproc)
106-
107-
- name: Run tests under valgrind
108-
run: ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}
10923

11024
# Build and test UMF with different CMake generators on Windows
11125
Windows-generators:
@@ -358,188 +272,3 @@ jobs:
358272
with:
359273
path: ${{github.workspace}}/vcpkg_pkgs_cache.zip
360274
key: ${{ steps.cache.outputs.cache-primary-key }}
361-
362-
# Scenarios where UMF_LINK_HWLOC_STATICALLY is set to OFF and hwloc is not installed in the system
363-
# The hwloc library is fetched implicitly
364-
Hwloc-fallback:
365-
strategy:
366-
matrix:
367-
include:
368-
- os: 'ubuntu-latest'
369-
build_type: Release
370-
number_of_processors: '$(nproc)'
371-
- os: 'windows-latest'
372-
build_type: Release
373-
number_of_processors: '$Env:NUMBER_OF_PROCESSORS'
374-
name: "Fallback to static hwloc build (${{matrix.os}}), build_type=${{matrix.build_type}})"
375-
runs-on: ${{matrix.os}}
376-
377-
steps:
378-
- name: Install dependencies
379-
if: matrix.os == 'ubuntu-latest'
380-
run: sudo apt-get install -y libnuma-dev
381-
382-
- name: Checkout
383-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
384-
with:
385-
fetch-depth: 0
386-
387-
- name: Configure build
388-
run: >
389-
cmake
390-
-B ${{env.BUILD_DIR}}
391-
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
392-
-DUMF_BUILD_SHARED_LIBRARY=ON
393-
-DUMF_BUILD_EXAMPLES=OFF
394-
-DUMF_DEVELOPER_MODE=ON
395-
-DUMF_LINK_HWLOC_STATICALLY=OFF
396-
-DUMF_TESTS_FAIL_ON_SKIP=ON
397-
398-
- name: Build UMF
399-
run: >
400-
cmake
401-
--build ${{env.BUILD_DIR}}
402-
--config ${{matrix.build_type}}
403-
-j ${{matrix.number_of_processors}}
404-
405-
- name: Run tests
406-
working-directory: ${{env.BUILD_DIR}}
407-
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
408-
409-
Windows-dynamic_mingw_hwloc:
410-
env:
411-
HWLOC_PACKAGE_NAME: hwloc-win64-build-2.10.0
412-
TBB_PACKAGE_NAME: oneapi-tbb-2021.12.0
413-
TBB_LIB_DIR: lib\intel64\vc14
414-
TBB_BIN_DIR: redist\intel64\vc14
415-
416-
name: "Windows dynamic UMF + mingw libhwloc"
417-
strategy:
418-
matrix:
419-
build_type: [Release]
420-
421-
runs-on: 'windows-latest'
422-
423-
steps:
424-
- name: Checkout
425-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
426-
with:
427-
fetch-depth: 0
428-
429-
- name: Get hwloc from official repo (mingw version)
430-
run: |
431-
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
432-
Expand-Archive ${{github.workspace}}\${{env.HWLOC_PACKAGE_NAME}}.zip -DestinationPath ${{github.workspace}}
433-
434-
- name: Get TBB from github
435-
run: |
436-
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
437-
Expand-Archive "${{github.workspace}}\${{env.TBB_PACKAGE_NAME}}-win.zip" -DestinationPath ${{github.workspace}}
438-
439-
- name: Configure build
440-
run: >
441-
cmake
442-
-B ${{env.BUILD_DIR}}
443-
-DCMAKE_INSTALL_PREFIX="${{env.INSTL_DIR}}"
444-
-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}}"
445-
-DUMF_BUILD_SHARED_LIBRARY=ON
446-
-DUMF_BUILD_EXAMPLES=ON
447-
-DUMF_FORMAT_CODE_STYLE=OFF
448-
-DUMF_DEVELOPER_MODE=ON
449-
-DUMF_TESTS_FAIL_ON_SKIP=ON
450-
-DUMF_HWLOC_NAME=libhwloc
451-
452-
- name: Build UMF
453-
run: cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j $Env:NUMBER_OF_PROCESSORS
454-
455-
- name: Run tests
456-
working-directory: ${{env.BUILD_DIR}}
457-
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test
458-
459-
L0:
460-
uses: ./.github/workflows/reusable_gpu.yml
461-
with:
462-
provider: "LEVEL_ZERO"
463-
runner: "L0"
464-
L0-BMG:
465-
uses: ./.github/workflows/reusable_gpu.yml
466-
with:
467-
provider: "LEVEL_ZERO"
468-
runner: "L0-BMG"
469-
CUDA:
470-
uses: ./.github/workflows/reusable_gpu.yml
471-
with:
472-
provider: "CUDA"
473-
runner: "CUDA"
474-
475-
# Full execution of QEMU tests
476-
QEMU:
477-
uses: ./.github/workflows/reusable_qemu.yml
478-
with:
479-
short_run: false
480-
# Beside the 2 LTS Ubuntu, we also test this on the latest Ubuntu - to be updated
481-
# every 6 months, so we verify the latest version of packages (compilers, etc.).
482-
os: "['ubuntu-22.04', 'ubuntu-24.04', 'ubuntu-25.04']"
483-
484-
Benchmarks:
485-
uses: ./.github/workflows/reusable_benchmarks.yml
486-
permissions:
487-
contents: write
488-
pull-requests: write
489-
with:
490-
pr_no: '0'
491-
bench_script_params: >
492-
--save Baseline_PVC
493-
--filter umf-benchmark
494-
495-
# Run benchmarks with the latest SYCL (with the latest UMF copied into the SYCL)
496-
# to verify the compatibility.
497-
#
498-
# TODO: re-enable this job, when nightly sycl builds are again available;
499-
# the last one available (as of 24.07.2025) is not working properly with
500-
# compute benchmarks. Now, we could only build sycl from sources, or find a
501-
# matching version of compute benchmarks with last nightly package.
502-
Benchmarks-sycl:
503-
if: false
504-
uses: ./.github/workflows/reusable_benchmarks.yml
505-
permissions:
506-
contents: write
507-
pull-requests: write
508-
with:
509-
pr_no: '0'
510-
bench_script_params: >-
511-
--adapter level_zero_v2
512-
--compute-runtime
513-
--build-igc
514-
--preset Minimal
515-
--exit-on-failure
516-
runner: 'L0_PERF_ARC'
517-
compatibility: '1'
518-
519-
SYCL:
520-
uses: ./.github/workflows/reusable_sycl.yml
521-
522-
alpine:
523-
name: Alpine
524-
env:
525-
HOST_WORKDIR: ${{github.workspace}}
526-
WORKDIR: /unified-memory-framework
527-
strategy:
528-
matrix:
529-
build_type: [Debug, Release]
530-
runs-on: ubuntu-latest
531-
532-
steps:
533-
- name: Checkout repository
534-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
535-
with:
536-
fetch-depth: 0
537-
538-
- name: Build Alpine image
539-
run: |
540-
docker build . -f .github/docker/alpine-3.21.Dockerfile -t umf-alpine-3.21
541-
542-
- name: Run UMF build on Alpine image
543-
run: |
544-
docker run --rm -i -v $HOST_WORKDIR:$WORKDIR \
545-
umf-alpine-3.21 $WORKDIR/.github/scripts/alpine_build.sh ${{matrix.build_type}} $WORKDIR

.github/workflows/pr_push.yml

Lines changed: 1 addition & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -23,81 +23,4 @@ jobs:
2323
name: Fast builds
2424
needs: [CodeChecks]
2525
uses: ./.github/workflows/reusable_fast.yml
26-
Build:
27-
name: Basic builds
28-
needs: [FastBuild]
29-
uses: ./.github/workflows/reusable_basic.yml
30-
DevDax:
31-
needs: [FastBuild]
32-
uses: ./.github/workflows/reusable_dax.yml
33-
MultiNuma:
34-
needs: [FastBuild]
35-
uses: ./.github/workflows/reusable_multi_numa.yml
36-
L0:
37-
needs: [Build]
38-
uses: ./.github/workflows/reusable_gpu.yml
39-
with:
40-
provider: "LEVEL_ZERO"
41-
runner: "L0"
42-
shared_lib: "['ON']"
43-
L0-BMG:
44-
needs: [Build]
45-
uses: ./.github/workflows/reusable_gpu.yml
46-
with:
47-
provider: "LEVEL_ZERO"
48-
runner: "L0-BMG"
49-
shared_lib: "['ON']"
50-
CUDA:
51-
needs: [Build]
52-
uses: ./.github/workflows/reusable_gpu.yml
53-
with:
54-
provider: "CUDA"
55-
runner: "CUDA"
56-
shared_lib: "['ON']"
57-
Sanitizers:
58-
needs: [FastBuild]
59-
uses: ./.github/workflows/reusable_sanitizers.yml
60-
QEMU:
61-
needs: [FastBuild]
62-
uses: ./.github/workflows/reusable_qemu.yml
63-
with:
64-
short_run: true
65-
ProxyLib:
66-
needs: [Build]
67-
uses: ./.github/workflows/reusable_proxy_lib.yml
68-
Valgrind:
69-
needs: [Build]
70-
uses: ./.github/workflows/reusable_valgrind.yml
71-
Coverage:
72-
# total coverage (on upstream only)
73-
if: github.repository == 'oneapi-src/unified-memory-framework'
74-
needs: [Build, DevDax, L0, CUDA, MultiNuma, QEMU, ProxyLib]
75-
uses: ./.github/workflows/reusable_coverage.yml
76-
secrets: inherit
77-
with:
78-
trigger: "${{github.event_name}}"
79-
Coverage_partial:
80-
# partial coverage (on forks)
81-
if: github.repository != 'oneapi-src/unified-memory-framework'
82-
needs: [Build, QEMU, ProxyLib]
83-
uses: ./.github/workflows/reusable_coverage.yml
84-
CodeQL:
85-
needs: [Build]
86-
permissions:
87-
contents: read
88-
security-events: write
89-
uses: ./.github/workflows/reusable_codeql.yml
90-
Trivy:
91-
needs: [Build]
92-
permissions:
93-
contents: read
94-
security-events: write
95-
uses: ./.github/workflows/reusable_trivy.yml
96-
Compatibility:
97-
needs: [Build]
98-
uses: ./.github/workflows/reusable_compatibility.yml
99-
strategy:
100-
matrix:
101-
tag: ["v1.0.1"]
102-
with:
103-
tag: ${{matrix.tag}}
26+

0 commit comments

Comments
 (0)