nightly-build-and-test #538
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |