From 66f15f41705d8c612a1df6515d6a719697767371 Mon Sep 17 00:00:00 2001 From: Andrei Elovikov Date: Tue, 29 Jul 2025 14:41:20 -0700 Subject: [PATCH 1/3] Disable unrelated CI --- .github/workflows/sycl-linux-precommit.yml | 348 +++++++++---------- .github/workflows/sycl-post-commit.yml | 2 +- .github/workflows/sycl-windows-precommit.yml | 2 +- 3 files changed, 176 insertions(+), 176 deletions(-) diff --git a/.github/workflows/sycl-linux-precommit.yml b/.github/workflows/sycl-linux-precommit.yml index 11e484c99a57c..e19b783e65912 100644 --- a/.github/workflows/sycl-linux-precommit.yml +++ b/.github/workflows/sycl-linux-precommit.yml @@ -55,179 +55,179 @@ jobs: build_image: "ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest" cc: clang cxx: clang++ - changes: ${{ needs.detect_changes.outputs.filters }} + changes: '[]' toolchain_artifact: sycl_linux_default - e2e_binaries_artifact: e2e_bin - e2e_binaries_spirv_backend_artifact: e2e_bin_spirv_backend - e2e_binaries_preview_artifact: e2e_bin_preview - - # If a PR changes CUDA adapter, run the build on Ubuntu 22.04 as well. - # Ubuntu 22.04 container has CUDA 12.1 installed while Ubuntu 24.0 image - # has CUDA 12.6.1 installed. - # The idea is to ensure that the code works with both CUDA versions. - build_ubuntu2204: - needs: [detect_changes] - if: always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur_cuda_adapter') - uses: ./.github/workflows/sycl-linux-build.yml - with: - build_ref: ${{ github.sha }} - build_cache_root: "/__w/" - build_cache_suffix: "ubuntu22" - build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest" - changes: ${{ needs.detect_changes.outputs.filters }} - - toolchain_artifact: sycl_linux_ubuntu22 - - run_prebuilt_e2e_tests: - needs: [build, detect_changes] - if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} - strategy: - fail-fast: false - matrix: - include: - - name: GEN 12 Integrated - runner: '["Linux", "gen12"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu;opencl:gpu;opencl:cpu - extra_lit_opts: --param gpu-intel-gen12=True - - name: NVIDIA/CUDA - runner: '["Linux", "cuda"]' - image_options: -u 1001 --gpus all --cap-add SYS_ADMIN - target_devices: cuda:gpu - - name: AMD/HIP - runner: '["Linux", "amdgpu"]' - image_options: -u 1001 --device=/dev/dri --device=/dev/kfd - target_devices: hip:gpu - extra_lit_opts: -j 1 - - name: Intel Arc A-Series Graphics - runner: '["Linux", "arc"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu - extra_lit_opts: --param matrix-xmx8=True - - name: E2E tests with dev igc on Intel Arc A-Series Graphics - runner: '["Linux", "arc"]' - image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu - extra_lit_opts: --param matrix-xmx8=True - use_igc_dev: true - env: '{"LIT_FILTER":"Matrix/"}' - - name: E2E tests on Intel Ponte Vecchio GPU - runner: '["Linux", "pvc"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu - - name: Dev IGC on Intel Ponte Vecchio GPU - runner: '["Linux", "pvc"]' - image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu - use_igc_dev: true - env: '{"LIT_FILTER":"Matrix/"}' - - name: Intel Battlemage Graphics - runner: '["Linux", "bmg"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero_v1:gpu;level_zero_v2:gpu - - name: SPIR-V Backend / Intel Battlemage Graphics - runner: '["Linux", "bmg"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu;opencl:gpu;opencl:cpu - extra_lit_opts: --param spirv-backend=True - e2e_binaries_artifact: e2e_bin_spirv_backend - - name: Preview Mode - runner: '["Linux", "gen12"]' - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: level_zero:gpu;opencl:gpu;opencl:cpu - extra_lit_opts: --param test-preview-mode=True - e2e_binaries_artifact: e2e_bin_preview - - uses: ./.github/workflows/sycl-linux-run-tests.yml - with: - name: ${{ matrix.name }} - runner: ${{ matrix.runner }} - image: ${{ matrix.image }} - image_options: ${{ matrix.image_options }} - target_devices: ${{ matrix.target_devices }} - extra_lit_opts: ${{ matrix.extra_lit_opts }} - repo_ref: ${{ github.sha }} - toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} - toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} - toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} - e2e_binaries_artifact: ${{ matrix.e2e_binaries_artifact || 'e2e_bin' }} - e2e_testing_mode: 'run-only' - - # Do not install drivers on AMD and CUDA runners. - install_igc_driver: >- - ${{ !contains(matrix.target_devices, 'cuda') && - !contains(matrix.target_devices, 'hip') && - contains(needs.detect_changes.outputs.filters, 'drivers') }} - install_dev_igc_driver: >- - ${{ !contains(matrix.target_devices, 'cuda') && - !contains(matrix.target_devices, 'hip') && - matrix.use_igc_dev && - (contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) || - 'false' }} - # Run only if the PR does not have the 'ci-no-devigc' label. - skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}} - env: ${{ matrix.env || (contains(needs.detect_changes.outputs.filters, 'esimd') && '{}' || '{"LIT_FILTER_OUT":"ESIMD/"}') }} - - test_benchmark_scripts: - needs: [build, detect_changes] - if: | - always() && !cancelled() - && needs.build.outputs.build_conclusion == 'success' - && contains(needs.detect_changes.outputs.filters, 'benchmarks') - uses: ./.github/workflows/sycl-linux-run-tests.yml - with: - name: Benchmark suite precommit testing - runner: '["PVC_PERF"]' - image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest - image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN - target_devices: 'level_zero:gpu' - tests_selector: benchmarks - benchmark_upload_results: false - benchmark_preset: 'Minimal' - benchmark_dry_run: true - repo_ref: ${{ github.sha }} - toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} - toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} - toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} - - test-perf: - needs: [build, detect_changes] - if: | - always() && !cancelled() - && needs.build.outputs.build_conclusion == 'success' - && (contains(github.event.pull_request.labels.*.name, 'run-perf-tests') - || contains(needs.detect_changes.outputs.filters, 'perf-tests')) - strategy: - fail-fast: false - matrix: - include: - - name: Intel GEN12 Graphics system - runner: '["Linux", "gen12"]' - image_extra_opts: --device=/dev/dri - - name: Intel Arc A-Series Graphics system - runner: '["Linux", "arc"]' - image_extra_opts: --device=/dev/dri - - name: AMD system - runner: '["Linux", "amdgpu"]' - image_extra_opts: --device=/dev/dri --device=/dev/kfd - - name: CUDA system - runner: '["Linux", "cuda"]' - image_extra_opts: --gpus all - uses: ./.github/workflows/sycl-linux-run-tests.yml - with: - name: Perf tests on ${{ matrix.name }} - runner: ${{ matrix. runner }} - image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }} - target_devices: all - - env: '{"LIT_FILTER":"PerformanceTests/"}' - extra_lit_opts: -a -j 1 --param enable-perf-tests=True - - repo_ref: ${{ github.sha }} - - toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} - toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} - toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + # e2e_binaries_artifact: e2e_bin + # e2e_binaries_spirv_backend_artifact: e2e_bin_spirv_backend + # e2e_binaries_preview_artifact: e2e_bin_preview + + # # If a PR changes CUDA adapter, run the build on Ubuntu 22.04 as well. + # # Ubuntu 22.04 container has CUDA 12.1 installed while Ubuntu 24.0 image + # # has CUDA 12.6.1 installed. + # # The idea is to ensure that the code works with both CUDA versions. + # build_ubuntu2204: + # needs: [detect_changes] + # if: always() && !cancelled() && contains(needs.detect_changes.outputs.filters, 'ur_cuda_adapter') + # uses: ./.github/workflows/sycl-linux-build.yml + # with: + # build_ref: ${{ github.sha }} + # build_cache_root: "/__w/" + # build_cache_suffix: "ubuntu22" + # build_image: "ghcr.io/intel/llvm/ubuntu2204_build:latest" + # changes: ${{ needs.detect_changes.outputs.filters }} + + # toolchain_artifact: sycl_linux_ubuntu22 + + # run_prebuilt_e2e_tests: + # needs: [build, detect_changes] + # if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} + # strategy: + # fail-fast: false + # matrix: + # include: + # - name: GEN 12 Integrated + # runner: '["Linux", "gen12"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu;opencl:gpu;opencl:cpu + # extra_lit_opts: --param gpu-intel-gen12=True + # - name: NVIDIA/CUDA + # runner: '["Linux", "cuda"]' + # image_options: -u 1001 --gpus all --cap-add SYS_ADMIN + # target_devices: cuda:gpu + # - name: AMD/HIP + # runner: '["Linux", "amdgpu"]' + # image_options: -u 1001 --device=/dev/dri --device=/dev/kfd + # target_devices: hip:gpu + # extra_lit_opts: -j 1 + # - name: Intel Arc A-Series Graphics + # runner: '["Linux", "arc"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu + # extra_lit_opts: --param matrix-xmx8=True + # - name: E2E tests with dev igc on Intel Arc A-Series Graphics + # runner: '["Linux", "arc"]' + # image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu + # extra_lit_opts: --param matrix-xmx8=True + # use_igc_dev: true + # env: '{"LIT_FILTER":"Matrix/"}' + # - name: E2E tests on Intel Ponte Vecchio GPU + # runner: '["Linux", "pvc"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu;opencl:gpu;level_zero_v2:gpu + # - name: Dev IGC on Intel Ponte Vecchio GPU + # runner: '["Linux", "pvc"]' + # image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu + # use_igc_dev: true + # env: '{"LIT_FILTER":"Matrix/"}' + # - name: Intel Battlemage Graphics + # runner: '["Linux", "bmg"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero_v1:gpu;level_zero_v2:gpu + # - name: SPIR-V Backend / Intel Battlemage Graphics + # runner: '["Linux", "bmg"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu;opencl:gpu;opencl:cpu + # extra_lit_opts: --param spirv-backend=True + # e2e_binaries_artifact: e2e_bin_spirv_backend + # - name: Preview Mode + # runner: '["Linux", "gen12"]' + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: level_zero:gpu;opencl:gpu;opencl:cpu + # extra_lit_opts: --param test-preview-mode=True + # e2e_binaries_artifact: e2e_bin_preview + + # uses: ./.github/workflows/sycl-linux-run-tests.yml + # with: + # name: ${{ matrix.name }} + # runner: ${{ matrix.runner }} + # image: ${{ matrix.image }} + # image_options: ${{ matrix.image_options }} + # target_devices: ${{ matrix.target_devices }} + # extra_lit_opts: ${{ matrix.extra_lit_opts }} + # repo_ref: ${{ github.sha }} + # toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} + # toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} + # toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + # e2e_binaries_artifact: ${{ matrix.e2e_binaries_artifact || 'e2e_bin' }} + # e2e_testing_mode: 'run-only' + + # # Do not install drivers on AMD and CUDA runners. + # install_igc_driver: >- + # ${{ !contains(matrix.target_devices, 'cuda') && + # !contains(matrix.target_devices, 'hip') && + # contains(needs.detect_changes.outputs.filters, 'drivers') }} + # install_dev_igc_driver: >- + # ${{ !contains(matrix.target_devices, 'cuda') && + # !contains(matrix.target_devices, 'hip') && + # matrix.use_igc_dev && + # (contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) || + # 'false' }} + # # Run only if the PR does not have the 'ci-no-devigc' label. + # skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}} + # env: ${{ matrix.env || (contains(needs.detect_changes.outputs.filters, 'esimd') && '{}' || '{"LIT_FILTER_OUT":"ESIMD/"}') }} + + # test_benchmark_scripts: + # needs: [build, detect_changes] + # if: | + # always() && !cancelled() + # && needs.build.outputs.build_conclusion == 'success' + # && contains(needs.detect_changes.outputs.filters, 'benchmarks') + # uses: ./.github/workflows/sycl-linux-run-tests.yml + # with: + # name: Benchmark suite precommit testing + # runner: '["PVC_PERF"]' + # image: ghcr.io/intel/llvm/sycl_ubuntu2404_nightly:latest + # image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + # target_devices: 'level_zero:gpu' + # tests_selector: benchmarks + # benchmark_upload_results: false + # benchmark_preset: 'Minimal' + # benchmark_dry_run: true + # repo_ref: ${{ github.sha }} + # toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} + # toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} + # toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + + # test-perf: + # needs: [build, detect_changes] + # if: | + # always() && !cancelled() + # && needs.build.outputs.build_conclusion == 'success' + # && (contains(github.event.pull_request.labels.*.name, 'run-perf-tests') + # || contains(needs.detect_changes.outputs.filters, 'perf-tests')) + # strategy: + # fail-fast: false + # matrix: + # include: + # - name: Intel GEN12 Graphics system + # runner: '["Linux", "gen12"]' + # image_extra_opts: --device=/dev/dri + # - name: Intel Arc A-Series Graphics system + # runner: '["Linux", "arc"]' + # image_extra_opts: --device=/dev/dri + # - name: AMD system + # runner: '["Linux", "amdgpu"]' + # image_extra_opts: --device=/dev/dri --device=/dev/kfd + # - name: CUDA system + # runner: '["Linux", "cuda"]' + # image_extra_opts: --gpus all + # uses: ./.github/workflows/sycl-linux-run-tests.yml + # with: + # name: Perf tests on ${{ matrix.name }} + # runner: ${{ matrix. runner }} + # image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }} + # target_devices: all + + # env: '{"LIT_FILTER":"PerformanceTests/"}' + # extra_lit_opts: -a -j 1 --param enable-perf-tests=True + + # repo_ref: ${{ github.sha }} + + # toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} + # toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} + # toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} diff --git a/.github/workflows/sycl-post-commit.yml b/.github/workflows/sycl-post-commit.yml index 3e45570c54776..75f060505ea4d 100644 --- a/.github/workflows/sycl-post-commit.yml +++ b/.github/workflows/sycl-post-commit.yml @@ -10,7 +10,7 @@ on: pull_request: branches: - - sycl + - sycl-foo paths: - .github/workflows/sycl-post-commit.yml - .github/workflows/sycl-linux-build.yml diff --git a/.github/workflows/sycl-windows-precommit.yml b/.github/workflows/sycl-windows-precommit.yml index 8caa7304747c4..9887ba36c6a55 100644 --- a/.github/workflows/sycl-windows-precommit.yml +++ b/.github/workflows/sycl-windows-precommit.yml @@ -3,7 +3,7 @@ name: SYCL Pre Commit on Windows on: pull_request: branches: - - sycl + # - sycl - llvmspirv_pulldown - sycl-rel-** # Do not run builds if changes are only in the following locations From 482738759ac3404789d84c1057039f648a733bfe Mon Sep 17 00:00:00 2001 From: Andrei Elovikov Date: Thu, 31 Jul 2025 12:36:22 -0700 Subject: [PATCH 2/3] Revert "[SYCL] Fix ABI break after "Refactor HandlerAccess::postProcess" (#19502)" This reverts commit 20b247cf1ec607e319cfda14e8abd1efdd9d91e5. --- sycl/source/handler.cpp | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/sycl/source/handler.cpp b/sycl/source/handler.cpp index 346a396b464e6..e10d6b00a36b3 100644 --- a/sycl/source/handler.cpp +++ b/sycl/source/handler.cpp @@ -458,28 +458,6 @@ detail::EventImplPtr handler::finalize() { #else event handler::finalize() { #endif -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES - // Old reduction implementation, prior to - // https://github.com/intel/llvm/pull/18794 - // https://github.com/intel/llvm/pull/18898 - // https://github.com/intel/llvm/pull/19203 - // relied on explicit calls to handler::finalize and those calls were inlined - // into the user applications. As such, we have to preserve the following - // behavior for ABI-compatibility purposes: - if (MIsFinalizedDoNotUse) - return MLastEventDoNotUse; - - MIsFinalizedDoNotUse = true; - // Use macros to trick clang-format: -#define WRAP_BODY_BEGIN MLastEventDoNotUse = [this]() { -#define WRAP_BODY_END \ - } \ - (); \ - return MLastEventDoNotUse; - - WRAP_BODY_BEGIN -#endif - const auto &type = getType(); detail::queue_impl *Queue = impl->get_queue_or_null(); ext::oneapi::experimental::detail::graph_impl *Graph = @@ -982,13 +960,6 @@ event handler::finalize() { #else return detail::createSyclObjFromImpl(Event); #endif - -#ifndef __INTEL_PREVIEW_BREAKING_CHANGES - WRAP_BODY_END - -#undef WRAP_BODY_BEGIN -#undef WRAP_BODY_END -#endif } void handler::addReduction(const std::shared_ptr &ReduObj) { From af0c9214702938003992b0e3de19eb60c7e40593 Mon Sep 17 00:00:00 2001 From: Andrei Elovikov Date: Tue, 29 Jul 2025 14:45:19 -0700 Subject: [PATCH 3/3] WIP compatibility testing --- .github/workflows/sycl-linux-precommit.yml | 15 ++++++++++++++ .github/workflows/sycl-linux-run-tests.yml | 9 +++++---- devops/actions/run-tests/e2e/action.yml | 23 +++++++++++++++------- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/.github/workflows/sycl-linux-precommit.yml b/.github/workflows/sycl-linux-precommit.yml index e19b783e65912..9f384daec2372 100644 --- a/.github/workflows/sycl-linux-precommit.yml +++ b/.github/workflows/sycl-linux-precommit.yml @@ -231,3 +231,18 @@ jobs: # toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} # toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} # toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + + compatibility: + needs: [build, detect_changes] + if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} + uses: ./.github/workflows/sycl-linux-run-tests.yml + with: + name: E2E Backward ABI compatibility + runner: '["Linux", "pvc"]' + image: ghcr.io/intel/llvm/sycl_prebuilt_tests:nightly-2025-06-20 + image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN + target_devices: level_zero:gpu + toolchain_artifact: ${{ needs.build.outputs.toolchain_artifact }} + toolchain_artifact_filename: ${{ needs.build.outputs.toolchain_artifact_filename }} + toolchain_decompress_command: ${{ needs.build.outputs.toolchain_decompress_command }} + e2e_testing_mode: 'run-only' diff --git a/.github/workflows/sycl-linux-run-tests.yml b/.github/workflows/sycl-linux-run-tests.yml index aa9361efb2363..dc5936b1bfc0b 100644 --- a/.github/workflows/sycl-linux-run-tests.yml +++ b/.github/workflows/sycl-linux-run-tests.yml @@ -37,7 +37,7 @@ on: repo_ref: type: string - required: True + required: False description: | Commit SHA or branch to checkout the intel/llvm repo. tests_ref: @@ -60,9 +60,10 @@ on: e2e_binaries_artifact: description: | - Must be set if `e2e_testing_mode` is equal to `run-only` and the - artifact must exist. Can be set in other modes resulting in artifact - upload. + When set in modes other than `run-only` results in artifact upload. + For `run-only` mode, if specified, means downloading pre-built + binaries from the artifact, otherwise they are expected to be part of + the container. type: string default: '' required: False diff --git a/devops/actions/run-tests/e2e/action.yml b/devops/actions/run-tests/e2e/action.yml index 6baacc86451c0..ece11e504f21e 100644 --- a/devops/actions/run-tests/e2e/action.yml +++ b/devops/actions/run-tests/e2e/action.yml @@ -24,6 +24,7 @@ runs: using: "composite" steps: - name: Checkout E2E tests + if: ${{ inputs.testing_mode != 'run-only' || inputs.binaries_artifact }} uses: actions/checkout@v4 with: path: llvm @@ -31,19 +32,26 @@ runs: sparse-checkout: | llvm/utils/lit sycl/test-e2e - - name: Download E2E Binaries - if: inputs.testing_mode == 'run-only' + if: ${{ inputs.testing_mode == 'run-only' && inputs.binaries_artifact != '' }} uses: actions/download-artifact@v4 with: name: ${{ inputs.binaries_artifact }} - name: Extract E2E Binaries - if: inputs.testing_mode == 'run-only' + if: ${{ inputs.testing_mode == 'run-only' && inputs.binaries_artifact != '' }} shell: bash run: | mkdir build-e2e tar -I 'zstd' -xf e2e_binaries.tar.zst -C build-e2e + - name: Extract E2E tests from container image + if: ${{ inputs.testing_mode == 'run-only' && inputs.binaries_artifact == '' }} + shell: bash + run: | + mkdir build-e2e llvm + tar -I 'zstd' -xf /sycl-prebuilt/e2e_binaries.tar.zst -C build-e2e + tar -I 'zstd' -xf /sycl-prebuilt/e2e_sources.tar.zst -C llvm + - name: Deduce E2E CMake options if: inputs.testing_mode != 'run-only' id: cmake_opts @@ -60,18 +68,19 @@ runs: run: | cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DCMAKE_CXX_COMPILER="${{ inputs.sycl_compiler || '$(which clang++)'}}" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }} - name: SYCL End-to-end tests - shell: bash {0} + shell: bash env: LIT_OPTS: -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True --param test-mode=${{ inputs.testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }} run: | ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1 - exit_code=$? + - name: Process E2E logs + if: ${{ always() }} + shell: bash + run: | cat e2e.log if [ $exit_code -ne 0 ]; then - # This is duplicated between lin/win, updates must change both. awk '/^Failed Tests|Unexpectedly Passed Tests|Unresolved tests|Timed Out Tests|Testing Time/{flag=1}/FAILED: CMakeFiles/{flag=0}flag' e2e.log >> $GITHUB_STEP_SUMMARY fi - exit $exit_code - name: Pack E2E binaries if: ${{ always() && !cancelled() && inputs.binaries_artifact != '' && inputs.testing_mode != 'run-only'}}