Skip to content

nightly-build-and-test #538

nightly-build-and-test

nightly-build-and-test #538

name: nightly-build-and-test
on:
push:
paths:
- .github/workflows/nightly_build_and_test.yml
- .github/actions/linuxTest/action.yml
workflow_dispatch:
schedule:
- cron: '30 5 * * *' # Daily 5:30 AM UTC / 12:30 AM EST
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
sdk-build-and-test:
name: BldTest PTI
#
# pti is a selector to machines with Intel Ponte Vecchio officially
# Intel(R) Data Center GPU Max 1100
#
runs-on: [self-hosted, Linux, pti-2gpu]
continue-on-error: true
strategy:
max-parallel: 3
matrix:
include:
- container: ${{ vars.PTI_DOCKER_SLES_15_3_ONEAPI_NMINUS1 }}
uploadname: ${{ vars.PTI_PKG_SLES_15_3_ONEAPI_NMINUS1 }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_UBUNTU_22_4_ONEAPI_NMINUS1 }}
uploadname: ${{ vars.PTI_PKG_UBUNTU_22_4_ONEAPI_NMINUS1 }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_UBUNTU_24_4_ONEAPI_NMINUS1 }}
uploadname: ${{ vars.PTI_PKG_UBUNTU_24_4_ONEAPI_NMINUS1 }}
preset: linux-icpx-release
#
# Keep this as place holder for UBUNTU_25_4_ONEAPI_NMINUS1
# and PTI_PKG_RHEL_10_ONEAPI_NMINUS1
#
- container: ${{ vars.PTI_DOCKER_ROCKY_8_ONEAPI_NMINUS1 }}
uploadname: ${{ vars.PTI_PKG_ROCKY_8_ONEAPI_NMINUS1 }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_ROCKY_8_ONEAPI_NMINUS1 }}
uploadname: ${{ vars.PTI_PKG_ROCKY_8_GXX_NMINUS1 }}
preset: linux-gxx-release
- container: ${{ vars.PTI_DOCKER_SLES_15_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_SLES_15_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_UBUNTU_22_4_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_UBUNTU_22_4_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_UBUNTU_24_4_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_UBUNTU_24_4_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_UBUNTU_25_4_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_UBUNTU_25_4_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_RHEL_10_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_RHEL_10_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_ROCKY_8_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_ROCKY_8_ONEAPI_N }}
preset: linux-icpx-release
- container: ${{ vars.PTI_DOCKER_ROCKY_8_ONEAPI_N }}
uploadname: ${{ vars.PTI_PKG_ROCKY_8_GXX_N }}
preset: linux-gxx-release
container:
image: ${{ matrix.container }}
options: --device=/dev/dri --cap-add CAP_PERFMON ${{ vars.PTI_DOCKER_PROXIES }}
if: vars.PTI_RUN_TESTS == 1
steps:
- name: Clean-up
run: |
rm -rf *
echo uploadname ${{ matrix.uploadname }}
echo container ${{ matrix.container }}
- name: Checkout
uses: actions/checkout@v4
- name: Build
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset ${{ matrix.preset }}
cmake --build --preset ${{ matrix.preset }} -j $(($(nproc)/2))
- name: Test action
uses: ./.github/actions/linuxTest
with:
wdir: sdk
preset: ${{ matrix.preset }}
- name: Build AddressSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-asan
cmake --build --preset linux-asan --parallel $(($(nproc)/2))
- name: Build ThreadSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-tsan
cmake --build --preset linux-tsan --parallel $(($(nproc)/2))
- name: Build libFuzzer
working-directory: sdk
run: |
# To ensure it still builds, run build for fuzz targets until we have
# proper fuzz testing infrastructure in place.
source /opt/intel/oneapi/setvars.sh
cmake --preset linux-fuzz
cmake --build --preset linux-fuzz --parallel $(($(nproc)/2))
#
# Rocky8 and Red Hat has a problem with this test.
#
- name: Test AddressSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
ctest --preset linux-asan --output-on-failure -L samples
- name: Test ThreadSanitizer
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
ctest --preset linux-tsan --output-on-failure -L samples
- name: Package SDK
working-directory: sdk
run: |
source /opt/intel/oneapi/setvars.sh
cpack -G TGZ --config build-${{ matrix.preset }}/CPackConfig.cmake
- name: Upload SDK
uses: actions/upload-artifact@v4
with:
name: "PTI-SDK-PKG-${{ matrix.preset }}-${{ matrix.uploadname }}"
path: |
sdk/pti*.tar.gz
sdk/pti*.tar.gz*
pti-tools-build-and-test:
if: vars.PTI_RUN_TESTS == 1
name: PTI Tools
runs-on: [Linux, pti, pvc]
continue-on-error: true
strategy:
max-parallel: 2
matrix:
include:
# Must fix to PTI_DOCKER_UBUNTU_24_4_ONEAPI_N
- container: ${{ vars.PTI_DOCKER_UBUNTU_24_4_ONEAPI_NMINUS1 }}
container:
image: ${{ matrix.container }}
options: --device=/dev/dri --cap-add CAP_PERFMON ${{ vars.PTI_DOCKER_PROXIES }}
steps:
- name: Clean-up
run: rm -rf *
- name: Checkout
uses: actions/checkout@v4
- name: Build-unitrace
working-directory: tools/unitrace
run: |
source /opt/intel/oneapi/setvars.sh
mkdir build
cd build
cmake -DBUILD_WITH_MPI=0 -GNinja ..
ninja
- name: Test-unitrace
working-directory: tools/unitrace/test
run: |
source /opt/intel/oneapi/setvars.sh
python ./test_unitrace.py
- name: Build-and-test-onetrace
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s onetrace
- name: Build-and-test-oneprof
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s oneprof
- name: Build-and-test-sysmon
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s sysmon
- name: Build-and-test-cl_gpu_metrics
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s cl_gpu_metrics
- name: Build-and-test-cl_debug_info
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s cl_debug_info
- name: Build-and-test-instcount
run: |
source /opt/intel/oneapi/setvars.sh
python ./tests/run.py -s instcount
- name: Build-and-test-ze_debug_info
run: |
source /opt/intel/oneapi/setvars.sh
python3 ./tests/run.py -s ze_debug_info