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
90114 - ' ["amdgpu"]'
91115 - ' ["Linux", "arc"]'
92116 - ' ["cts-cpu"]'
117+ - ' ["Linux", "build"]'
93118 image :
94119 description : |
95120 Use option ending with ":build" for AMDGPU, ":latest" for the rest.
145170 options :
146171 - false
147172 - true
173+ e2e_testing_mode :
174+ type : choice
175+ options :
176+ - " full"
177+ - " build-only"
148178
149179permissions :
150180 contents : read
@@ -297,8 +327,19 @@ jobs:
297327 cat /usr/local/lib/igc/IGCTAG.txt
298328 fi
299329
330+ - name : Download E2E Binaries
331+ if : inputs.e2e_binaries_artifact != ''
332+ uses : actions/download-artifact@v4
333+ with :
334+ name : ${{ inputs.e2e_binaries_artifact }}
335+ - name : Extract E2E Binaries
336+ if : inputs.e2e_binaries_artifact != ''
337+ run : |
338+ mkdir build-e2e
339+ tar -I 'zstd' -xf e2e_binaries.tar.zst -C build-e2e
340+
300341 - name : Deduce E2E CMake options
301- if : inputs.tests_selector == 'e2e'
342+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
302343 id : cmake_opts
303344 shell : bash
304345 env :
@@ -308,14 +349,14 @@ jobs:
308349 echo "opts=$CMAKE_EXTRA_ARGS" >> $GITHUB_OUTPUT
309350 fi
310351 - name : Configure E2E tests
311- if : inputs.tests_selector == 'e2e'
352+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
312353 run : |
313- 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 }}
354+ 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 }}
314355 - name : SYCL End-to-end tests
315356 shell : bash {0}
316357 if : inputs.tests_selector == 'e2e'
317358 env :
318- LIT_OPTS : -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests ${{ inputs.extra_lit_opts }}
359+ 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 }}
319360 run : |
320361 ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1
321362 exit_code=$?
@@ -402,3 +443,13 @@ jobs:
402443 grep 'exit code: [^0]' -r logs >> $GITHUB_STEP_SUMMARY
403444
404445 exit $ret
446+ - name : Pack E2E binaries
447+ if : ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}}
448+ run : tar -I 'zstd -9' -cf e2e_binaries.tar.zst -C ./build-e2e .
449+ - name : Upload E2E binaries
450+ if : ${{ always() && !cancelled() && inputs.e2e_testing_mode == 'build-only'}}
451+ uses : actions/upload-artifact@v4
452+ with :
453+ name : sycl_e2e_bin_${{ inputs.artifact_suffix }}
454+ path : e2e_binaries.tar.zst
455+ retention-days : ${{ inputs.retention-days }}
0 commit comments