@@ -134,245 +134,16 @@ on:
134134permissions : read-all
135135
136136jobs :
137- build :
138- name : Build + LIT
137+ check_abi_symbols :
138+ name : Check ABI symbols tests match release branch
139139 runs-on : [Linux, build]
140- container :
141- image : ${{ inputs.build_image }}
142- options : -u 1001:1001
143- outputs :
144- build_conclusion : ${{ steps.build.conclusion }}
145- toolchain_artifact_filename : ${{ steps.artifact_info.outputs.ARCHIVE_NAME }}
146- toolchain_decompress_command : ${{ steps.artifact_info.outputs.DECOMPRESS }}
147- env :
148- CCACHE_DIR : ${{ inputs.build_cache_root }}/build_cache_${{ inputs.build_cache_suffix }}
149- CCACHE_MAXSIZE : 8G
140+ if : github.repository == 'intel/llvm'
141+ container : ghcr.io/intel/llvm/ubuntu2404_build
150142 steps :
151- - name : Deduce artifact archive params
152- # To reduce number of inputs parameters that is limited for manual triggers.
153- id : artifact_info
154- run : |
155- NAME="${{inputs.toolchain_artifact_filename}}"
156- if [ -z "$NAME" ]; then
157- NAME=llvm_sycl.tar.zst
158- fi
159- echo ARCHIVE_NAME="$NAME" >> $GITHUB_OUTPUT
160- if [ "${NAME}" != "${NAME%.tar.gz}" ]; then
161- echo COMPRESS="gzip" >> $GITHUB_OUTPUT
162- echo DECOMPRESS="gunzip" >> $GITHUB_OUTPUT
163- elif [ "${NAME}" != "${NAME%.tar.zst}" ]; then
164- echo COMPRESS="zstd -9" >> $GITHUB_OUTPUT
165- echo DECOMPRESS="zstd" >> $GITHUB_OUTPUT
166- else
167- echo "Unsupported extension"
168- exit 1
169- fi
170143 - uses : actions/checkout@v4
171144 with :
172145 sparse-checkout : |
173- devops/actions
174- # Cleanup will be run after all actions are completed.
175- - name : Register cleanup after job is finished
176- uses : ./devops/actions/cleanup
177- - uses : ./devops/actions/cached_checkout
178- with :
179- path : src
180- ref : ${{ inputs.build_ref || github.sha }}
181- cache_path : " /__w/repo_cache/"
182- - name : Setup oneAPI env
183- if : ${{ inputs.cc == 'icx' || inputs.cxx == 'icpx' }}
184- uses : ./devops/actions/setup_linux_oneapi_env
185- - name : Configure
186- # Setting `CMAKE_INSTALL_PREFIX` is important because that's the location
187- # where `sycl-linux-run-tests.yml` unpacks the toolchain to. That location
188- # *must* match between build-only and run-only E2E tests runs and we might
189- # be creating pre-built E2E tests' binaries in this workflow.
190- env :
191- CC : ${{ inputs.cc }}
192- CXX : ${{ inputs.cxx }}
193- CUDA_LIB_PATH : " /usr/local/cuda/lib64/stubs"
194- run : |
195- mkdir -p $CCACHE_DIR
196- mkdir -p $GITHUB_WORKSPACE/build
197- cd $GITHUB_WORKSPACE/build
198- python3 $GITHUB_WORKSPACE/src/buildbot/configure.py -w $GITHUB_WORKSPACE \
199- -s $GITHUB_WORKSPACE/src -o $GITHUB_WORKSPACE/build \
200- -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/toolchain \
201- -t Release \
202- --ci-defaults ${{ inputs.build_configure_extra_args }} \
203- -DCMAKE_C_COMPILER_LAUNCHER=ccache \
204- -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
205- -DLLVM_INSTALL_UTILS=ON \
206- -DNATIVECPU_USE_OCK=Off
207- - name : Compile
208- id : build
209- # Emulate default value for manual dispatch as we've run out of available arguments.
210- run : cmake --build $GITHUB_WORKSPACE/build --target ${{ inputs.build_target || 'sycl-toolchain' }}
211- - name : check-llvm
212- if : always() && !cancelled() && contains(inputs.changes, 'llvm')
213- env :
214- # Can't inline to support possible quotes inside:
215- BUILD_CONFIGURE_EXTRA_ARGS : ${{ inputs.build_configure_extra_args }}
216- run : |
217- if [[ "${BUILD_CONFIGURE_EXTRA_ARGS}" == *"--use-libcxx"* ]]; then
218- # https://github.com/llvm/llvm-project/issues/59429
219- export LIT_FILTER_OUT="ExecutionEngine/MCJIT"
220- fi
221-
222- cmake --build $GITHUB_WORKSPACE/build --target check-llvm
223- - name : check-clang
224- if : always() && !cancelled() && contains(inputs.changes, 'clang')
225- env :
226- # Can't inline to support possible quotes inside:
227- BUILD_CONFIGURE_EXTRA_ARGS : ${{ inputs.build_configure_extra_args }}
228- run : |
229- # Can we move this to Dockerfile? Hopefully, noop on Windows.
230- export XDG_CACHE_HOME=$GITHUB_WORKSPACE/os_cache
231- if [[ "${BUILD_CONFIGURE_EXTRA_ARGS}" == *"--use-libcxx"* ]]; then
232- # https://github.com/llvm/llvm-project/issues/59428
233- export LIT_FILTER_OUT="(E|e)xception"
234- fi
235- cmake --build $GITHUB_WORKSPACE/build --target check-clang
236- - name : check-sycl
237- if : always() && !cancelled() && contains(inputs.changes, 'sycl')
238- run : |
239- # TODO consider moving this to Dockerfile.
240- export LD_LIBRARY_PATH=/usr/local/cuda/compat/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
241- cmake --build $GITHUB_WORKSPACE/build --target check-sycl
242- - name : check-sycl-unittests
243- if : always() && !cancelled() && contains(inputs.changes, 'sycl')
244- run : |
245- # TODO consider moving this to Dockerfile.
246- export LD_LIBRARY_PATH=/usr/local/cuda/compat/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
247- cmake --build $GITHUB_WORKSPACE/build --target check-sycl-unittests
248- - name : check-llvm-spirv
249- if : always() && !cancelled() && contains(inputs.changes, 'llvm_spirv')
250- run : |
251- cmake --build $GITHUB_WORKSPACE/build --target check-llvm-spirv
252- - name : check-xptifw
253- if : always() && !cancelled() && contains(inputs.changes, 'xptifw')
254- run : |
255- cmake --build $GITHUB_WORKSPACE/build --target check-xptifw
256- - name : check-libclc
257- if : always() && !cancelled() && contains(inputs.changes, 'libclc')
258- run : |
259- cmake --build $GITHUB_WORKSPACE/build --target check-libclc
260- - name : check-libdevice
261- if : always() && !cancelled() && contains(inputs.changes, 'sycl')
262- run : |
263- cmake --build $GITHUB_WORKSPACE/build --target check-libdevice
264- - name : Check E2E test requirements
265- if : always() && !cancelled() && !contains(inputs.changes, 'sycl')
266- run : |
267- # TODO consider moving this to Dockerfile.
268- export LD_LIBRARY_PATH=/usr/local/cuda/compat/:/usr/local/cuda/lib64:$LD_LIBRARY_PATH
269- LIT_OPTS="--allow-empty-runs" LIT_FILTER="e2e_test_requirements" cmake --build $GITHUB_WORKSPACE/build --target check-sycl
270- - name : Install sycl-toolchain
271- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
272- run : |
273- cmake --build $GITHUB_WORKSPACE/build --target deploy-sycl-toolchain
274-
275- - name : Pack toolchain release
276- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' && inputs.release_toolchain_artifact != '' }}
277- run : tar -I '${{ steps.artifact_info.outputs.COMPRESS }}' -cf ${{ steps.artifact_info.outputs.ARCHIVE_NAME }} -C $GITHUB_WORKSPACE/toolchain .
278- - name : Upload toolchain release
279- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' && inputs.release_toolchain_artifact != '' }}
280- uses : actions/upload-artifact@v4
281- with :
282- name : ${{ inputs.release_toolchain_artifact }}
283- path : ${{ steps.artifact_info.outputs.ARCHIVE_NAME }}
284- retention-days : ${{ inputs.retention-days }}
285-
286- - name : Install utilities
287- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
288- # TODO replace utility installation with a single CMake target
289- run : |
290- cmake --build $GITHUB_WORKSPACE/build --target utils/FileCheck/install
291- cmake --build $GITHUB_WORKSPACE/build --target utils/count/install
292- cmake --build $GITHUB_WORKSPACE/build --target utils/not/install
293- cmake --build $GITHUB_WORKSPACE/build --target utils/lit/install
294- cmake --build $GITHUB_WORKSPACE/build --target utils/llvm-lit/install
295- cmake --build $GITHUB_WORKSPACE/build --target install-llvm-size
296- cmake --build $GITHUB_WORKSPACE/build --target install-llvm-cov
297- cmake --build $GITHUB_WORKSPACE/build --target install-llvm-profdata
298- cmake --build $GITHUB_WORKSPACE/build --target install-compiler-rt
299- # This is required to perform the DeviceConfigFile consistency test, see
300- # sycl/test-e2e/Basic/device_config_file_consistency.cpp.
301- cmake --install $GITHUB_WORKSPACE/build --component DeviceConfigFile
302- - name : Additional Install for "--shared-libs" build
303- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' && contains(inputs.build_configure_extra_args, '--shared-libs') }}
304- run : |
305- cmake --build $GITHUB_WORKSPACE/build --target install-clang-libraries
306- cmake --build $GITHUB_WORKSPACE/build --target install-llvm-libraries
307-
308- - name : Pack toolchain
309- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
310- run : tar -I '${{ steps.artifact_info.outputs.COMPRESS }}' -cf ${{ steps.artifact_info.outputs.ARCHIVE_NAME }} -C $GITHUB_WORKSPACE/toolchain .
311- - name : Upload toolchain
312- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
313- uses : actions/upload-artifact@v4
314- with :
315- name : ${{ inputs.toolchain_artifact }}
316- path : ${{ steps.artifact_info.outputs.ARCHIVE_NAME }}
317- retention-days : ${{ inputs.retention-days }}
318-
319-
320- - name : Source OneAPI TBB vars.sh
321- # Tasks that use the just built toolchain below, need extra environment
322- # setup. No harm in it if all of those tasks would get skipped.
323- if : ${{ always() && !cancelled() && steps.build.conclusion == 'success' }}
324- run : |
325- # https://github.com/actions/runner/issues/1964 prevents us from using
326- # the ENTRYPOINT in the image.
327- env | sort > env_before
328- if [ -e /runtimes/oneapi-tbb/env/vars.sh ]; then
329- source /runtimes/oneapi-tbb/env/vars.sh;
330- elif [ -e /opt/runtimes/oneapi-tbb/env/vars.sh ]; then
331- source /opt/runtimes/oneapi-tbb/env/vars.sh;
332- else
333- echo "no TBB vars in /opt/runtimes or /runtimes";
334- fi
335- env | sort > env_after
336- comm -13 env_before env_after >> $GITHUB_ENV
337- rm env_before env_after
338-
339- - name : Build E2E tests
340- if : ${{ inputs.e2e_binaries_artifact && always() && !cancelled() && steps.build.conclusion == 'success' }}
341- uses : ./devops/actions/run-tests/e2e
342- with :
343- ref : ${{ inputs.ref || github.sha }}
344- testing_mode : build-only
345- target_devices : all
346- binaries_artifact : ${{ inputs.e2e_binaries_artifact }}
347- sycl_compiler : $GITHUB_WORKSPACE/toolchain/bin/clang++
348- extra_lit_opts : --param sycl_build_targets="spir;nvidia;amd"
349-
350- - name : Remove E2E tests before spirv-backend run
351- if : ${{ inputs.e2e_binaries_spirv_backend_artifact && always() && !cancelled() && steps.build.conclusion == 'success' }}
352- run : rm -rf build-e2e
353-
354- - name : Build E2E tests with SPIR-V Backend
355- if : ${{ inputs.e2e_binaries_spirv_backend_artifact && always() && !cancelled() && steps.build.conclusion == 'success' }}
356- uses : ./devops/actions/run-tests/e2e
357- with :
358- ref : ${{ inputs.ref || github.sha }}
359- testing_mode : build-only
360- target_devices : all
361- binaries_artifact : ${{ inputs.e2e_binaries_spirv_backend_artifact }}
362- sycl_compiler : $GITHUB_WORKSPACE/toolchain/bin/clang++
363- extra_lit_opts : --param spirv-backend=True
364-
365- - name : Remove E2E tests before preview-mode run
366- if : ${{ inputs.e2e_binaries_preview_artifact && always() && !cancelled() && steps.build.conclusion == 'success' }}
367- run : rm -rf build-e2e
368-
369- - name : Build E2E tests in Preview Mode
370- if : ${{ inputs.e2e_binaries_preview_artifact && always() && !cancelled() && steps.build.conclusion == 'success' }}
371- uses : ./devops/actions/run-tests/e2e
372- with :
373- ref : ${{ inputs.ref || github.sha }}
374- testing_mode : build-only
375- target_devices : all
376- binaries_artifact : ${{ inputs.e2e_binaries_preview_artifact }}
377- sycl_compiler : $GITHUB_WORKSPACE/toolchain/bin/clang++
378- extra_lit_opts : --param test-preview-mode=True
146+ sycl/test/abi
147+ - run : |
148+ git -I "# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_linux.dump sycl/test/abi/sycl_symbols_linux-sycl-rel-6_3.dump
149+ git -I "# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_windows.dump sycl/test/abi/sycl_symbols_windows-sycl-rel-6_3.dump
0 commit comments