Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@ on:
type: boolean
schedule:
- cron: '0 0 * * *'
pull_request:

permissions:
contents: read

jobs:
coverity:
name: Coverity
# run only on upstream; forks do not know Username/Password
# run only on upstream; forks don't have token for upstream's cov project
if: github.repository == 'oneapi-src/unified-memory-framework'
runs-on: ubuntu-latest
steps:
Expand All @@ -33,14 +34,6 @@ jobs:
sudo apt-get update
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev

- name: Download Coverity
run: |
wget -nv https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=oneapi-src%2Funified-memory-framework" -O coverity_tool.tgz

- name: Extract Coverity
run: |
tar xzf coverity_tool.tgz

- name: Configure CMake
run: >
cmake
Expand All @@ -51,6 +44,10 @@ jobs:
-DUMF_TESTS_FAIL_ON_SKIP=ON
-DUMF_BUILD_LIBUMF_POOL_DISJOINT=ON
-DUMF_BUILD_LIBUMF_POOL_JEMALLOC=ON
-DUMF_BUILD_TESTS=ON
-DUMF_BUILD_EXAMPLES=ON
-DUMF_BUILD_BENCHMARKS=ON
-DUMF_BUILD_BENCHMARKS_MT=ON

- name: Build
run: |
Expand All @@ -60,9 +57,16 @@ jobs:
fi
cov-build --dir ${{github.workspace}}/cov-int cmake --build ${{github.workspace}}/build --config Release -j$(nproc)

- name: Download Coverity
run: |
wget -O coverity_tool.tgz -nv https://scan.coverity.com/download/linux64 --post-data \
"token=${{ secrets.COVERITY_SCAN_TOKEN }}&project=oneapi-src%2Funified-memory-framework"

- name: Extract Coverity
run: tar xzf coverity_tool.tgz

- name: Create tarball to analyze
run: >
tar czvf cov-int_umf.tgz cov-int
run: tar czvf cov-int_umf.tgz cov-int

- name: Push to Coverity Scan
if: ${{ github.event_name == 'schedule' || github.event.inputs.cov_push_tarball == 'true' }}
Expand Down
111 changes: 59 additions & 52 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,55 @@ on:
workflow_dispatch:
schedule:
- cron: '0 4 * * *'
pull_request:

permissions:
contents: read

jobs:
fuzz-test:
name: Fuzz test
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
compiler: [{c: clang, cxx: clang++}]

runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0

- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev

- name: Configure CMake
run: >
cmake
-B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUMF_TESTS_FAIL_ON_SKIP=ON
-DUMF_DEVELOPER_MODE=ON
-DUMF_BUILD_FUZZTESTS=ON

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)

- name: Fuzz long test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"
fuzz_test:
if: false
name: Fuzz test
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
compiler: [{c: clang, cxx: clang++}]

runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0

- name: Install apt packages
run: |
sudo apt-get update
sudo apt-get install -y cmake hwloc libhwloc-dev libnuma-dev libtbb-dev

- name: Configure CMake
run: >
cmake
-B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{matrix.build_type}}
-DCMAKE_C_COMPILER=${{matrix.compiler.c}}
-DCMAKE_CXX_COMPILER=${{matrix.compiler.cxx}}
-DUMF_TESTS_FAIL_ON_SKIP=ON
-DUMF_DEVELOPER_MODE=ON
-DUMF_BUILD_FUZZTESTS=ON

- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} --verbose -j$(nproc)

- name: Fuzz long test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_type}} --output-on-failure --verbose -L "fuzz-long"

valgrind:
name: Valgrind
if: false
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -89,8 +92,8 @@ jobs:
- name: Run tests under valgrind
run: ${{github.workspace}}/test/test_valgrind.sh ${{github.workspace}} ${{github.workspace}}/build ${{matrix.tool}}

Windows-Ninja-cl:
name: Windows-Ninja-cl
win_ninja_cl:
name: Ninja cl
env:
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"
BUILD_DIR : "${{github.workspace}}/build"
Expand Down Expand Up @@ -153,7 +156,7 @@ jobs:
working-directory: ${{env.BUILD_DIR}}
run: ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test

icx:
win_icx:
name: ICX
env:
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"
Expand All @@ -169,42 +172,42 @@ jobs:
build_type: Release
compiler: {c: icx, cxx: icx}
shared_library: 'ON'

runs-on: ${{matrix.os}}

steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0

- name: Initialize vcpkg
uses: lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
with:
vcpkgGitCommitId: 3dd44b931481d7a8e9ba412621fa810232b66289
vcpkgDirectory: ${{env.BUILD_DIR}}/vcpkg
vcpkgJsonGlob: '**/vcpkg.json'

- name: Install dependencies
run: vcpkg install

- name: Install Ninja
uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # v5

- name: Download icx compiler
env:
# Link source: https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler-download.html
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"
CMPLR_LINK: "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/90492fdd-9cdc-4423-b9d2-c35de9510fd2/intel-dpcpp-cpp-compiler-2025.0.4.21_offline.exe"
run: |
Invoke-WebRequest -Uri "${{ env.CMPLR_LINK }}" -OutFile compiler_install.exe

- name: Install icx compiler
shell: cmd
run: |
start /b /wait .\compiler_install.exe -s -x -f extracted --log extract.log
extracted\bootstrapper.exe -s --action install --eula=accept -p=NEED_VS2017_INTEGRATION=0 ^
-p=NEED_VS2019_INTEGRATION=0 -p=NEED_VS2022_INTEGRATION=0 --log-dir=.

- name: Configure build
shell: cmd
run: |
Expand All @@ -224,14 +227,14 @@ jobs:
-DUMF_BUILD_LEVEL_ZERO_PROVIDER=ON ^
-DUMF_BUILD_CUDA_PROVIDER=ON ^
-DUMF_TESTS_FAIL_ON_SKIP=ON

- name: Build UMF
shell: cmd
run: |
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
call "C:\Program Files (x86)\Intel\oneAPI\setvars-vcvarsall.bat"
cmake --build ${{env.BUILD_DIR}} --config ${{matrix.build_type}} -j %NUMBER_OF_PROCESSORS%

- name: Run tests
shell: cmd
working-directory: ${{env.BUILD_DIR}}
Expand All @@ -241,16 +244,19 @@ jobs:
ctest -C ${{matrix.build_type}} --output-on-failure --test-dir test

L0:
if: false
uses: ./.github/workflows/reusable_gpu.yml
with:
name: "LEVEL_ZERO"
CUDA:
if: false
uses: ./.github/workflows/reusable_gpu.yml
with:
name: "CUDA"

# Full execution of QEMU tests
QEMU:
if: false
uses: ./.github/workflows/reusable_qemu.yml
with:
short_run: false
Expand All @@ -259,6 +265,7 @@ jobs:
os: "['ubuntu-22.04', 'ubuntu-24.04', 'ubuntu-24.10']"

Benchmarks:
if: false
uses: ./.github/workflows/reusable_benchmarks.yml
permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ env:

jobs:
Coverage:
name: Coverage build
name: Build & compute coverage
runs-on: ubuntu-latest

steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable_proxy_lib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ env:
COVERAGE_NAME : "exports-coverage-proxy"

jobs:
proxy-ubuntu:
proxy_ubuntu:
name: Ubuntu

strategy:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/reusable_sanitizers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ permissions:
contents: read

jobs:
ubuntu-build:
ubuntu_build:
name: Ubuntu
strategy:
matrix:
Expand Down Expand Up @@ -75,8 +75,8 @@ jobs:
run: |
ctest --output-on-failure

windows-build:
name: cl and clang-cl on Windows
windows_build:
name: Windows
env:
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"
strategy:
Expand Down
Loading