1919
2020 target_devices :
2121 type : string
22- required : True
22+ required : False
2323 extra_cmake_args :
2424 type : string
2525 required : False
5959 default : ' '
6060 required : False
6161
62+ e2e_binaries_artifact :
63+ description : |
64+ By setting this the E2E binaries folder will not be created, rather it
65+ will be downloaded and extracted from the specified artifact. When
66+ running tests in `run-only` mode this must be provided.
67+ type : string
68+ default : ' '
69+ required : False
70+ e2e_testing_mode :
71+ description : |
72+ Testing mode to run E2E tests in, can be either `full`, `build-only`
73+ or `run-only`. In `build-only` mode an artifact of the E2E binaries
74+ will be uploaded.
75+ type : string
76+ default : ' full'
77+ artifact_suffix :
78+ description : ' Suffix for E2E binaries artifact that is output when in `build-only`.'
79+ type : string
80+ default : ' default'
81+ retention-days :
82+ description : ' E2E binaries artifact retention period.'
83+ type : string
84+ default : 1
85+
6286 reset_intel_gpu :
6387 type : string
6488 required : False
87111 - ' ["amdgpu"]'
88112 - ' ["Linux", "arc"]'
89113 - ' ["cts-cpu"]'
114+ - ' ["Linux", "build"]'
90115 image :
91116 description : |
92117 Use option ending with ":build" for AMDGPU, ":latest" for the rest.
142167 options :
143168 - false
144169 - true
170+ e2e_testing_mode :
171+ type : choice
172+ options :
173+ - " full"
174+ - " build-only"
145175
146176permissions :
147177 contents : read
@@ -270,8 +300,19 @@ jobs:
270300 cat /usr/local/lib/igc/IGCTAG.txt
271301 fi
272302
303+ - name : Download E2E Binaries
304+ if : inputs.e2e_binaries_artifact != ''
305+ uses : actions/download-artifact@v4
306+ with :
307+ name : ${{ inputs.e2e_binaries_artifact }}
308+ - name : Extract E2E Binaries
309+ if : inputs.e2e_binaries_artifact != ''
310+ run : |
311+ mkdir build-e2e
312+ tar -I 'zstd' -xf e2e_binaries.tar.zst -C build-e2e
313+
273314 - name : Deduce E2E CMake options
274- if : inputs.tests_selector == 'e2e'
315+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
275316 id : cmake_opts
276317 shell : bash
277318 env :
@@ -281,14 +322,14 @@ jobs:
281322 echo "opts=$CMAKE_EXTRA_ARGS" >> $GITHUB_OUTPUT
282323 fi
283324 - name : Configure E2E tests
284- if : inputs.tests_selector == 'e2e'
325+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
285326 run : |
286- cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DSYCL_TEST_E2E_TARGETS="${{ inputs.target_devices }}" - DCMAKE_CXX_COMPILER="$(which clang++)" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }}
327+ cmake -GNinja -B./build-e2e -S./llvm/sycl/test-e2e -DCMAKE_CXX_COMPILER="$(which clang++)" -DLLVM_LIT="$PWD/llvm/llvm/utils/lit/lit.py" ${{ steps.cmake_opts.outputs.opts }}
287328 - name : SYCL End-to-end tests
288329 shell : bash {0}
289330 if : inputs.tests_selector == 'e2e'
290331 env :
291- LIT_OPTS : -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests ${{ inputs.extra_lit_opts }}
332+ LIT_OPTS : -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param test-mode=${{ inputs.e2e_testing_mode }} --param sycl_devices=${{ inputs.target_devices }} ${{ inputs.extra_lit_opts }}
292333 run : |
293334 ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1
294335 exit_code=$?
@@ -375,3 +416,13 @@ jobs:
375416 grep 'exit code: [^0]' -r logs >> $GITHUB_STEP_SUMMARY
376417
377418 exit $ret
419+ - name : Pack E2E binaries
420+ if : ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}}
421+ run : tar -I 'zstd -9' -cf e2e_binaries.tar.zst -C ./build-e2e .
422+ - name : Upload E2E binaries
423+ if : ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}}
424+ uses : actions/upload-artifact@v4
425+ with :
426+ name : sycl_e2e_bin_${{ inputs.artifact_suffix }}
427+ path : e2e_binaries.tar.zst
428+ retention-days : ${{ inputs.retention-days }}
0 commit comments