19
19
20
20
target_devices :
21
21
type : string
22
- required : True
22
+ required : False
23
23
extra_cmake_args :
24
24
type : string
25
25
required : False
59
59
default : ' '
60
60
required : False
61
61
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
+
62
86
reset_intel_gpu :
63
87
type : string
64
88
required : False
87
111
- ' ["amdgpu"]'
88
112
- ' ["Linux", "arc"]'
89
113
- ' ["cts-cpu"]'
114
+ - ' ["Linux", "build"]'
90
115
image :
91
116
description : |
92
117
Use option ending with ":build" for AMDGPU, ":latest" for the rest.
142
167
options :
143
168
- false
144
169
- true
170
+ e2e_testing_mode :
171
+ type : choice
172
+ options :
173
+ - " full"
174
+ - " build-only"
145
175
146
176
permissions :
147
177
contents : read
@@ -270,8 +300,19 @@ jobs:
270
300
cat /usr/local/lib/igc/IGCTAG.txt
271
301
fi
272
302
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
+
273
314
- name : Deduce E2E CMake options
274
- if : inputs.tests_selector == 'e2e'
315
+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
275
316
id : cmake_opts
276
317
shell : bash
277
318
env :
@@ -281,14 +322,14 @@ jobs:
281
322
echo "opts=$CMAKE_EXTRA_ARGS" >> $GITHUB_OUTPUT
282
323
fi
283
324
- name : Configure E2E tests
284
- if : inputs.tests_selector == 'e2e'
325
+ if : inputs.tests_selector == 'e2e' && inputs.e2e_binaries_artifact == ''
285
326
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 }}
287
328
- name : SYCL End-to-end tests
288
329
shell : bash {0}
289
330
if : inputs.tests_selector == 'e2e'
290
331
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 }}
292
333
run : |
293
334
ninja -C build-e2e check-sycl-e2e > e2e.log 2>&1
294
335
exit_code=$?
@@ -375,3 +416,13 @@ jobs:
375
416
grep 'exit code: [^0]' -r logs >> $GITHUB_STEP_SUMMARY
376
417
377
418
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