Skip to content

SYCL Release Branch Nightly #18

SYCL Release Branch Nightly

SYCL Release Branch Nightly #18

name: SYCL Release Branch Nightly
on:
workflow_dispatch:
inputs:
testing_branch:
description: |
Branch to test, e.g. sycl-rel-6_0_0.
If nothing is specified, the last release branch is used.
schedule:
- cron: '0 3 * * *'
permissions: read-all
jobs:
# To avoid unnecessary scheduled runs this job checks if there are new commits
# since the last run. More precisely, it checks if the last commit is older
# than 24h. That means the previous Nightly already tested this commit.
check_for_new_commits:
if: github.repository == 'intel/llvm'
runs-on: ubuntu-latest
name: Check for new commits
outputs:
is_new_commit: ${{ steps.is_new_commit.outputs.is_new_commit }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
- run: git show --quiet | tee -a $GITHUB_STEP_SUMMARY
- id: is_new_commit
if: ${{ github.event_name == 'schedule' }}
run: |
if [ -z "$(git rev-list --after="24 hours" HEAD)" ]; then
echo "is_new_commit=false" >> $GITHUB_OUTPUT
fi
ubuntu2204_build:
needs: [check_for_new_commits]
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: default
build_configure_extra_args: '--disable-jit --no-assertions --add_security_flags=sanitize --hip --cuda'
build_image: ghcr.io/intel/llvm/ubuntu2204_build:latest
build_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
pack_release: 'true'
# We upload the build for people to download/use, override its name and
# prefer widespread gzip compression.
artifact_archive_name: sycl_linux.tar.gz
ubuntu2204_test:
needs: [ubuntu2204_build]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: AMD/HIP
runner: '["Linux", "amdgpu"]'
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: hip:gpu
- name: Intel L0 Gen12 GPU
runner: '["Linux", "gen12"]'
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
extra_lit_opts: --param gpu-intel-gen12=True
- name: Intel L0 Battlemage GPU
runner: '["Linux", "bmg"]'
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
- name: Intel OCL Gen12 GPU
runner: '["Linux", "gen12"]'
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
target_devices: opencl:gpu
extra_lit_opts: --param gpu-intel-gen12=True
- name: Intel OCL CPU
runner: '["Linux", "gen12"]'
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: e2e
extra_lit_opts: ${{ matrix.extra_lit_opts }}
repo_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
devops_ref: sycl
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
build-win:
needs: [check_for_new_commits]
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
uses: ./.github/workflows/sycl-windows-build.yml
with:
ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
build_configure_extra_args: '--disable-jit --no-assertions --add_security_flags=sanitize'
pack_release: 'true'
# We upload both Linux/Windows build via Github's "Releases"
# functionality, make sure Linux/Windows names follow the same pattern.
artifact_archive_name: sycl_windows.tar.gz
e2e-win:
needs: build-win
# Continue if build was successful.
if: |
always()
&& !cancelled()
&& needs.build-win.outputs.build_conclusion == 'success'
strategy:
fail-fast: false
matrix:
include:
- name: Intel GEN12 Graphics with Level Zero
runner: '["Windows","gen12"]'
# 6_1_0 doesn't support the auto-detection, keep it until 6_2_0.
extra_lit_opts: --param gpu-intel-gen12=True
- name: Intel Battlemage Graphics with Level Zero
runner: '["Windows","bmg"]'
uses: ./.github/workflows/sycl-windows-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
extra_lit_opts: ${{ matrix.extra_lit_opts }}
repo_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
devops_ref: sycl
cuda-aws-start:
needs: [ubuntu2204_build]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: start
ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
cuda-run-tests:
needs: [ubuntu2204_build, cuda-aws-start]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: CUDA E2E
runner: '["aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}"]'
image: ghcr.io/intel/llvm/ubuntu2204_build:latest
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
target_devices: cuda:gpu
repo_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
devops_ref: sycl
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
cuda-aws-stop:
needs: [cuda-aws-start, cuda-run-tests]
if: always()
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: stop
ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
build-sycl-cts:
needs: ubuntu2204_build
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: Build SYCL-CTS
runner: '["Linux", "build"]'
cts_testing_mode: 'build-only'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
tests_selector: cts
repo_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
devops_ref: sycl
tests_ref: ead7474b9cb2189ce48025550912ccad5a72bd30
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
sycl_cts_artifact: sycl_cts_bin_linux
run-sycl-cts:
needs: [ubuntu2204_build, build-sycl-cts]
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
strategy:
fail-fast: false
matrix:
include:
- name: SYCL-CTS on OCL CPU
runner: '["Linux", "gen12"]'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
- name: SYCL-CTS on L0 gen12
runner: '["Linux", "gen12"]'
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
uses: ./.github/workflows/sycl-linux-run-tests.yml
with:
name: ${{ matrix.name }}
runner: ${{ matrix.runner }}
cts_testing_mode: 'run-only'
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: cts
repo_ref: ${{ inputs.testing_branch || 'sycl-rel-6_1_0' }}
devops_ref: sycl
sycl_toolchain_artifact: sycl_linux_default
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
sycl_cts_artifact: sycl_cts_bin_linux
hardening-check:
needs: [ubuntu2204_build, build-win]
if: |
always()
&& !cancelled()
&& needs.ubuntu2204_build.outputs.build_conclusion == 'success'
&& needs.build-win.outputs.build_conclusion == 'success'
uses: ./.github/workflows/sycl-hardening-check.yml
with:
sycl_linux_artifact: sycl_linux_release
sycl_linux_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
sycl_linux_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
sycl_windows_artifact: sycl_windows_release
sycl_windows_archive: ${{ needs.build-win.outputs.artifact_archive_name }}