[CI] Move testing to Ubuntu 24.04 everywhere #12747
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SYCL Pre Commit on Linux | |
on: | |
# We rely on "Fork pull request workflows from outside collaborators" - | |
# "Require approval for all outside collaborators" at | |
# https://github.com/intel/llvm/settings/actions for security. | |
pull_request: | |
branches: | |
- sycl | |
- sycl-devops-pr/** | |
- sycl-rel-** | |
# Do not run builds if changes are only in the following locations | |
paths-ignore: | |
- '.github/ISSUE_TEMPLATE/**' | |
- '.github/CODEOWNERS' | |
- 'sycl/doc/**' | |
- 'sycl/gdb/**' | |
- 'clang/docs/**' | |
- '**.md' | |
- '**.rst' | |
- '.github/workflows/sycl-windows-*.yml' | |
- '.github/workflows/sycl-macos-*.yml' | |
- '.github/workflows/sycl-nightly.yml' | |
- 'devops/containers/**' | |
- 'devops/actions/build_container/**' | |
concurrency: | |
# Cancel a currently running workflow from the same PR, branch or tag. | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
permissions: read-all | |
jobs: | |
detect_changes: | |
uses: ./.github/workflows/sycl-detect-changes.yml | |
build: | |
needs: [detect_changes] | |
if: always() && success() | |
uses: ./.github/workflows/sycl-linux-build.yml | |
with: | |
build_ref: ${{ github.sha }} | |
merge_ref: '' | |
build_cache_root: "/__w/" | |
build_artifact_suffix: "default" | |
build_cache_suffix: "default" | |
# Docker image has last nightly pre-installed and added to the PATH | |
build_image: "ghcr.io/intel/llvm/sycl_ubuntu2204_nightly:build" | |
cc: clang | |
cxx: clang++ | |
changes: ${{ needs.detect_changes.outputs.filters }} | |
determine_arc_tests: | |
name: Decide which Arc tests to run | |
needs: [build, detect_changes] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
runs-on: [Linux, aux-tasks] | |
timeout-minutes: 3 | |
outputs: | |
arc_tests: ${{ steps.arc_tests.outputs.arc_tests }} | |
steps: | |
- name: Determine Arc tests | |
id: arc_tests | |
run: | | |
if [ "${{ contains(needs.detect_changes.outputs.filters, 'devigccfg') }}" == "true" ]; then | |
echo 'arc_tests="(ESIMD|InvokeSimd|Matrix)/"' >> "$GITHUB_OUTPUT" | |
elif [ "${{ contains(needs.detect_changes.outputs.filters, 'drivers') }}" == "true" ]; then | |
echo 'arc_tests=""' >> "$GITHUB_OUTPUT" | |
elif [ "${{ contains(needs.detect_changes.outputs.filters, 'esimd') }}" == "true" ]; then | |
echo 'arc_tests="(ESIMD|InvokeSimd|Matrix)/"' >> "$GITHUB_OUTPUT" | |
else | |
echo 'arc_tests="Matrix/"' >> "$GITHUB_OUTPUT" | |
fi | |
build_e2e_tests: | |
needs: [build] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
uses: ./.github/workflows/sycl-linux-run-tests.yml | |
with: | |
name: Build e2e tests | |
runner: '["Linux", "build"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest | |
image_options: -u 1001 | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }} | |
e2e_testing_mode: 'build-only' | |
run_prebuilt_e2e_tests: | |
needs: [build, build_e2e_tests] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Intel | |
runner: '["Linux", "gen12"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest | |
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu;opencl:cpu | |
reset_intel_gpu: true | |
extra_lit_opts: --param gpu-intel-gen12=True | |
uses: ./.github/workflows/sycl-linux-run-tests.yml | |
with: | |
name: ${{ matrix.name }} | |
runner: ${{ matrix.runner }} | |
image: ${{ matrix.image }} | |
image_options: ${{ matrix.image_options }} | |
target_devices: ${{ matrix.target_devices }} | |
extra_lit_opts: --param fallback-to-build-if-requires-build-and-run=True ${{ matrix.extra_lit_opts }} | |
reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }} | |
e2e_binaries_artifact: sycl_e2e_bin_default | |
e2e_testing_mode: 'run-only' | |
test: | |
needs: [build, detect_changes, determine_arc_tests] | |
if: ${{ always() && !cancelled() && needs.build.outputs.build_conclusion == 'success' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: NVIDIA/CUDA | |
runner: '["Linux", "cuda"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_build:latest | |
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN | |
target_devices: ext_oneapi_cuda:gpu | |
- name: AMD/HIP | |
runner: '["Linux", "amdgpu"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_build:latest | |
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd | |
target_devices: ext_oneapi_hip:gpu | |
reset_intel_gpu: false | |
- name: E2E tests on Intel Arc A-Series Graphics | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest | |
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu | |
reset_intel_gpu: true | |
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True | |
env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }' | |
- name: E2E tests with dev igc on Intel Arc A-Series Graphics | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:devigc | |
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN | |
target_devices: level_zero:gpu;opencl:gpu | |
reset_intel_gpu: true | |
extra_lit_opts: --param matrix-xmx8=True --param gpu-intel-dg2=True | |
env: '{"LIT_FILTER":${{ needs.determine_arc_tests.outputs.arc_tests }} }' | |
use_igc_dev: true | |
uses: ./.github/workflows/sycl-linux-run-tests.yml | |
with: | |
name: ${{ matrix.name }} | |
runner: ${{ matrix. runner }} | |
image: ${{ matrix.image }} | |
image_options: ${{ matrix.image_options }} | |
target_devices: ${{ matrix.target_devices }} | |
reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | |
extra_lit_opts: ${{ matrix.extra_lit_opts }} | |
env: ${{ matrix.env || '{}' }} | |
# Do not install drivers on AMD and CUDA runners. | |
install_igc_driver: >- | |
${{ !contains(matrix.target_devices, 'ext_oneapi_cuda') && | |
!contains(matrix.target_devices, 'ext_oneapi_hip') && | |
contains(needs.detect_changes.outputs.filters, 'drivers') }} | |
install_dev_igc_driver: >- | |
${{ !contains(matrix.target_devices, 'ext_oneapi_cuda') && | |
!contains(matrix.target_devices, 'ext_oneapi_hip') && | |
matrix.use_igc_dev && | |
(contains(needs.detect_changes.outputs.filters, 'devigccfg') || contains(needs.detect_changes.outputs.filters, 'drivers')) || | |
'false' }} | |
# Run only if the PR does not have the 'ci-no-devigc' label. | |
skip_run: ${{matrix.use_igc_dev && contains(github.event.pull_request.labels.*.name, 'ci-no-devigc') || 'false'}} | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }} | |
test-perf: | |
needs: [build, detect_changes] | |
if: | | |
always() && !cancelled() | |
&& needs.build.outputs.build_conclusion == 'success' | |
&& (contains(github.event.pull_request.labels.*.name, 'run-perf-tests') | |
|| contains(needs.detect_changes.outputs.filters, 'perf-tests')) | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Intel GEN12 Graphics system | |
runner: '["Linux", "gen12"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest | |
image_extra_opts: --device=/dev/dri | |
reset_intel_gpu: true | |
- name: Intel Arc A-Series Graphics system | |
runner: '["Linux", "arc"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest | |
image_extra_opts: --device=/dev/dri | |
reset_intel_gpu: true | |
- name: AMD system | |
runner: '["Linux", "amdgpu"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_build:latest | |
image_extra_opts: --device=/dev/dri --device=/dev/kfd | |
- name: CUDA system | |
runner: '["Linux", "cuda"]' | |
image: ghcr.io/intel/llvm/ubuntu2404_build:latest | |
image_extra_opts: --gpus all | |
uses: ./.github/workflows/sycl-linux-run-tests.yml | |
with: | |
name: Perf tests on ${{ matrix.name }} | |
runner: ${{ matrix. runner }} | |
image: ${{ matrix.image }} | |
image_options: -u 1001 --privileged --cap-add SYS_ADMIN ${{ matrix.image_extra_opts }} | |
target_devices: all | |
reset_intel_gpu: ${{ matrix.reset_intel_gpu }} | |
env: '{"LIT_FILTER":"PerformanceTests/"}' | |
extra_lit_opts: -a -j 1 --param enable-perf-tests=True | |
extra_cmake_args: ${{ matrix.extra_cmake_args }} | |
ref: ${{ github.sha }} | |
merge_ref: '' | |
sycl_toolchain_artifact: sycl_linux_default | |
sycl_toolchain_archive: ${{ needs.build.outputs.artifact_archive_name }} | |
sycl_toolchain_decompress_command: ${{ needs.build.outputs.artifact_decompress_command }} |