6363 required : false
6464 default : " cl"
6565
66+ e2e_testing_mode :
67+ type : string
68+ default : " full"
69+
70+ e2e_binaries_artifact :
71+ type : string
72+ default : ' '
73+ required : False
74+
6675 cts_testing_mode :
6776 description : |
6877 Testing mode to run SYCL-CTS in, can be either `full`, `build-only`
@@ -143,17 +152,36 @@ jobs:
143152 sycl-ls
144153 - run : |
145154 sycl-ls --verbose
155+
156+ - name : Download E2E Binaries
157+ if : ${{ inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'run-only' }}
158+ uses : actions/download-artifact@v4
159+ with :
160+ name : ${{ inputs.e2e_binaries_artifact }}
161+ - name : Extract E2E Binaries
162+ if : ${{ inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'run-only' }}
163+ shell : bash
164+ run : |
165+ mkdir build-e2e
166+ tar -xf e2e_bin.tar.gz -C build-e2e
167+
146168 - name : Configure E2E with Level Zero target
147169 if : inputs.tests_selector == 'e2e'
148170 shell : cmd
149171 run : |
150172 mkdir build-e2e
151173 cmake -GNinja -B build-e2e -S.\llvm\sycl\test-e2e -DSYCL_TEST_E2E_TARGETS="level_zero:gpu" -DCMAKE_CXX_COMPILER="clang++" -DLEVEL_ZERO_LIBS_DIR="D:\\github\\level-zero_win-sdk\\lib" -DLEVEL_ZERO_INCLUDE="D:\\github\\level-zero_win-sdk\\include" -DLLVM_LIT="..\\llvm\\llvm\\utils\\lit\\lit.py"
174+
175+ - name : Keep track of files after configuring E2E step
176+ if : ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }}
177+ shell : bash
178+ run : ls build-e2e > e2econf_files.txt
179+
152180 - name : Run End-to-End tests
153181 if : inputs.tests_selector == 'e2e'
154182 shell : bash {0}
155183 env :
156- LIT_OPTS : -v --no-progress-bar --show-unsupported --show-pass --show-xfail --max-time 3600 --time-tests --param print_features=True ${{ inputs.extra_lit_opts }}
184+ 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.e2e_testing_mode }} ${{ inputs.extra_lit_opts }}
157185 run : |
158186 # Run E2E tests.
159187 if [[ ${{inputs.compiler}} == 'icx' ]]; then
@@ -169,6 +197,30 @@ jobs:
169197 fi
170198 exit $exit_code
171199
200+ # Github CI doesn't support containers on Windows, so we cannot guarantee
201+ # that paths are the same between building and running systems. To avoid
202+ # CMake issues related to absolute paths we reconfigure the build-e2e
203+ # folder on the run system.
204+ - name : Remove E2E configuration files
205+ if : ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }}
206+ shell : bash
207+ run : |
208+ for FILE in $(cat e2econf_files.txt); do rm -r build-e2e/$FILE; done
209+ rm e2econf_files.txt
210+
211+ - name : Pack E2E test binaries
212+ if : ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }}
213+ shell : bash
214+ run : |
215+ tar -czf e2e_bin.tar.gz -C build-e2e .
216+ - name : Upload E2E test binaries
217+ if : ${{ always() && inputs.tests_selector == 'e2e' && inputs.e2e_testing_mode == 'build-only' }}
218+ uses : actions/upload-artifact@v4
219+ with :
220+ name : ${{ inputs.e2e_binaries_artifact }}
221+ path : e2e_bin.tar.gz
222+ retention-days : 3
223+
172224 - name : Run SYCL CTS Tests
173225 if : inputs.tests_selector == 'cts'
174226 uses : ./devops/actions/run-tests/windows/cts
0 commit comments