-
Notifications
You must be signed in to change notification settings - Fork 796
[CI] Add precompiled CTS tests to sycl_prebuilt_tests image #20332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: sycl
Are you sure you want to change the base?
Changes from all commits
7c9de76
026ba62
7fb4a3e
96d5ea7
ad2da94
3453107
874bc9d
2c0f0e6
64d2eae
3f27ea4
7f6bcc3
89faa52
d2d243f
fccecfb
6d9717b
e74bc2c
658294f
d424a37
0ae7546
76c0642
fcfb2e9
ec1d4d5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| name: Create container with pre-built tests | ||
|
|
||
| # The purpose of this is to build E2E tests with the latest release toolchain | ||
| # and then run them with the trunk SYCL RT (libsycl.so and friends) to verify | ||
| # that ABI compatibility hasn't been broken. | ||
| # The purpose of this is to build E2E and CTS tests with the latest release | ||
ianayl marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # toolchain and then run them with the trunk SYCL RT (libsycl.so and friends) | ||
| # to verify that ABI compatibility hasn't been broken. | ||
|
|
||
| on: | ||
| workflow_dispatch: | ||
|
|
@@ -12,6 +12,18 @@ on: | |
| description: tag/sha | ||
| required: true | ||
| default: | ||
| cts_ref: | ||
| type: choice | ||
| description: tag/sha to use for SYCL-CTS -- hardcoded hash is CTS revision matching sycl-rel-6_3 branch. | ||
| required: true | ||
| default: 'main' | ||
| options: | ||
| - main | ||
| # Author: Tom Deakin <[email protected]> | ||
| # Date: Thu Jul 10 16:45:48 2025 +0100 | ||
| # Merge pull request #1102 from steffenlarsen/steffen/remove_secondary_queue_exceptions | ||
| # Remove expected exceptions for secondary queue | ||
| - 19e4ed34377c8a8a354d701772427be8c5430b0d | ||
|
|
||
| push: | ||
| branches: | ||
|
|
@@ -35,6 +47,12 @@ jobs: | |
| toolchain_artifact: toolchain | ||
| toolchain_artifact_filename: toolchain.tar.zst | ||
| e2e_binaries_artifact: e2e_bin | ||
| cts_binaries_artifact: cts_bin | ||
aelovikov-intel marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| # Author: Tom Deakin <[email protected]> | ||
| # Date: Thu Jul 10 16:45:48 2025 +0100 | ||
| # Merge pull request #1102 from steffenlarsen/steffen/remove_secondary_queue_exceptions | ||
| # Remove expected exceptions for secondary queue | ||
| cts_binaries_ref: ${{ inputs.cts_ref || '19e4ed34377c8a8a354d701772427be8c5430b0d' }} | ||
|
|
||
| # Couldn't make it work from inside the container, so have to use an extra job | ||
| # and pass an artifact. | ||
|
|
@@ -72,7 +90,11 @@ jobs: | |
| with: | ||
| name: e2e_bin | ||
| path: devops/ | ||
|
|
||
| - name: Download CTS binaries | ||
| uses: actions/download-artifact@v5 | ||
| with: | ||
| name: cts_bin | ||
| path: devops/ | ||
|
|
||
| - name: Build container | ||
| uses: ./devops/actions/build_container | ||
|
|
@@ -84,14 +106,14 @@ jobs: | |
| tags: | | ||
| ghcr.io/${{ github.repository }}/sycl_prebuilt_tests:${{ inputs.ref || github.ref_name }} | ||
|
|
||
| run-e2e: | ||
| run-prebuilt-tests: | ||
| # Ensure those tests can actually pass with the toolchain they were built | ||
| # with, otherwise testing compatibility with those binaries is pointless. | ||
| # This job should be aligned with how the image will be used in trunk CI. | ||
| # | ||
| # I'll start with just a single configuration, but this might be extended | ||
| # with a matrix in future (e.g., to run on cpu/CUDA/AMDGPU). | ||
| name: Run E2E tests with SYCL RT they were built with | ||
| name: Run E2E, CTS tests with SYCL RT they were built with | ||
| runs-on: [Linux, pvc] | ||
| needs: [docker, build] | ||
| if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | ||
|
|
@@ -103,7 +125,8 @@ jobs: | |
| with: | ||
| sparse-checkout: | | ||
| devops | ||
| - run: | | ||
| - id: decompress | ||
| run: | | ||
| mkdir toolchain | ||
| tar -I 'zstd' -xf /sycl-prebuilt/toolchain.tar.zst -C toolchain | ||
| echo LD_LIBRARY_PATH=$PWD/toolchain/lib:$LD_LIBRARY_PATH >> $GITHUB_ENV | ||
|
|
@@ -112,7 +135,15 @@ jobs: | |
| sycl-ls | ||
| - name: Run E2E tests | ||
| uses: ./devops/actions/run-tests/e2e | ||
| if: ${{ always() && !cancelled() && steps.decompress.outcome == 'success' }} | ||
| timeout-minutes: 20 | ||
| with: | ||
| testing_mode: run-only | ||
| target_devices: level_zero:gpu | ||
| - name: Run CTS tests | ||
ianayl marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| uses: ./devops/actions/run-tests/cts | ||
| if: ${{ always() && !cancelled() && steps.decompress.outcome == 'success' }} | ||
| timeout-minutes: 20 | ||
| with: | ||
| cts_testing_mode: run-only | ||
| target_devices: level_zero:gpu | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,11 +9,13 @@ inputs: | |
| cts_testing_mode: | ||
| required: true | ||
| sycl_cts_artifact: | ||
| require: false | ||
| required: false | ||
| target_devices: | ||
| required: true | ||
| retention-days: | ||
| required: false | ||
| sycl_compiler: | ||
| required: false | ||
|
|
||
| runs: | ||
| using: "composite" | ||
|
|
@@ -56,7 +58,7 @@ runs: | |
| echo "::endgroup::" | ||
| fi | ||
|
|
||
| cmake -GNinja -B./build-cts -S./khronos_sycl_cts -DCMAKE_CXX_COMPILER=$(which clang++) \ | ||
| cmake -GNinja -B./build-cts -S./khronos_sycl_cts -DCMAKE_CXX_COMPILER="${{ inputs.sycl_compiler || '$(which clang++)'}}" \ | ||
| -DSYCL_IMPLEMENTATION=DPCPP \ | ||
| -DSYCL_CTS_EXCLUDE_TEST_CATEGORIES="$cts_exclude_filter" \ | ||
| -DSYCL_CTS_ENABLE_OPENCL_INTEROP_TESTS=OFF \ | ||
|
|
@@ -81,18 +83,37 @@ runs: | |
| retention-days: ${{ inputs.retention-days }} | ||
|
|
||
| - name: Download SYCL-CTS binaries | ||
| if: inputs.cts_testing_mode == 'run-only' | ||
| if: | | ||
| inputs.cts_testing_mode == 'run-only' | ||
| && !(inputs.sycl_cts_artifact == 'in-container' | ||
| || inputs.sycl_cts_artifact == '' | ||
| || github.event_name == 'workflow_dispatch') | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| name: ${{ inputs.sycl_cts_artifact }} | ||
|
|
||
| - name: Extract SYCL-CTS binaries | ||
| if: inputs.cts_testing_mode == 'run-only' | ||
| if: | | ||
| inputs.cts_testing_mode == 'run-only' | ||
| && !(inputs.sycl_cts_artifact == 'in-container' | ||
| || inputs.sycl_cts_artifact == '' | ||
| || github.event_name == 'workflow_dispatch') | ||
|
Comment on lines
+96
to
+100
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is actually broken in
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. #20580 fixes it in trunk, this PR will need to be updated. |
||
| shell: bash | ||
| run: | | ||
| mkdir -p build-cts/bin | ||
| tar -I 'zstd' -xf sycl_cts_bin.tar.zst -C build-cts/bin | ||
|
|
||
| - name: Extract CTS tests from container image | ||
| if: | | ||
| inputs.cts_testing_mode == 'run-only' | ||
| && (inputs.sycl_cts_artifact == 'in-container' | ||
| || inputs.sycl_cts_artifact == '' | ||
| || github.event_name == 'workflow_dispatch') | ||
| shell: bash | ||
| run: | | ||
| mkdir -p build-cts/bin | ||
| tar -I 'zstd' -xf /sycl-prebuilt/sycl_cts_bin.tar.zst -C build-cts/bin | ||
|
|
||
| - name: SYCL CTS List devices | ||
| # Proceed with execution even if the 'build' step did not succeed. | ||
| if: (always() && !cancelled()) && inputs.cts_testing_mode != 'build-only' | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.