diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index 531a463c77..1f74469e0b 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml @@ -11,6 +11,7 @@ on: type: boolean schedule: - cron: '0 0 * * *' + pull_request: permissions: contents: read @@ -18,7 +19,7 @@ permissions: 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: @@ -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 @@ -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: | @@ -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' }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7a6335ed65..51ecb219f5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -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: @@ -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" @@ -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" @@ -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: | @@ -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}} @@ -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 @@ -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 diff --git a/.github/workflows/reusable_coverage.yml b/.github/workflows/reusable_coverage.yml index c8dde20ec4..8550a9849f 100644 --- a/.github/workflows/reusable_coverage.yml +++ b/.github/workflows/reusable_coverage.yml @@ -17,7 +17,7 @@ env: jobs: Coverage: - name: Coverage build + name: Build & compute coverage runs-on: ubuntu-latest steps: diff --git a/.github/workflows/reusable_proxy_lib.yml b/.github/workflows/reusable_proxy_lib.yml index a1f5975fa6..0b58d945e9 100644 --- a/.github/workflows/reusable_proxy_lib.yml +++ b/.github/workflows/reusable_proxy_lib.yml @@ -13,7 +13,7 @@ env: COVERAGE_NAME : "exports-coverage-proxy" jobs: - proxy-ubuntu: + proxy_ubuntu: name: Ubuntu strategy: diff --git a/.github/workflows/reusable_sanitizers.yml b/.github/workflows/reusable_sanitizers.yml index 25458da51f..326e10d6c7 100644 --- a/.github/workflows/reusable_sanitizers.yml +++ b/.github/workflows/reusable_sanitizers.yml @@ -11,7 +11,7 @@ permissions: contents: read jobs: - ubuntu-build: + ubuntu_build: name: Ubuntu strategy: matrix: @@ -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: