Skip to content

SYCL Nightly

SYCL Nightly #503

Workflow file for this run

name: SYCL Nightly
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * *'
permissions: read-all
jobs:
ubuntu2204_build:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl-linux-build.yml
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: default
build_configure_extra_args: '--hip --cuda'
build_image: ghcr.io/intel/llvm/ubuntu2204_build:latest
merge_ref: ''
retention-days: 90
# 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_shared_build:
# if: github.repository == 'intel/llvm'
# uses: ./.github/workflows/sycl-linux-build.yml
# secrets: inherit
# with:
# build_cache_root: "/__w/"
# build_cache_suffix: sprod_shared
# build_artifact_suffix: sprod_shared
# build_configure_extra_args: '--shared-libs --hip --cuda --native_cpu'
# merge_ref: ''
# artifact_archive_name: sycl_linux_shared.tar.zst
# 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: ghcr.io/intel/llvm/ubuntu2404_build:latest
# image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
# target_devices: hip:gpu
# tests_selector: e2e
# - name: Intel L0 GPU
# 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
# reset_intel_gpu: true
# tests_selector: e2e
# - name: Intel OCL GPU
# 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: opencl:gpu
# reset_intel_gpu: true
# tests_selector: e2e
# - name: OCL CPU (AMD)
# runner: '["Linux", "amdgpu"]'
# image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
# image_options: -u 1001
# target_devices: opencl:cpu
# tests_selector: e2e
# - name: OCL CPU (Intel/GEN12)
# runner: '["Linux", "gen12"]'
# image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
# image_options: -u 1001 --privileged --cap-add SYS_ADMIN
# target_devices: opencl:cpu
# tests_selector: e2e
# - name: OCL CPU (Intel/Arc)
# runner: '["Linux", "arc"]'
# image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
# image_options: -u 1001
# target_devices: opencl:cpu
# tests_selector: e2e
# 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 }}
# tests_selector: ${{ matrix.tests_selector }}
# extra_lit_opts: "--param 'cxx_flags=-D_GLIBCXX_USE_CXX11_ABI=0' ${{ 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.ubuntu2204_build.outputs.artifact_archive_name }}
# sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
# build-win:
# uses: ./.github/workflows/sycl-windows-build.yml
# if: github.repository == 'intel/llvm'
# with:
# retention-days: 90
# # 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'
# uses: ./.github/workflows/sycl-windows-run-tests.yml
# with:
# name: Intel GEN12 Graphics with Level Zero
# runner: '["Windows","gen12"]'
# sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
# 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
# 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
# ref: ${{ github.sha }}
# merge_ref: ''
# 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() && ${{ needs.cuda-aws-start.result != 'skipped' }}
# uses: ./.github/workflows/sycl-aws.yml
# secrets: inherit
# with:
# mode: stop
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: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
tests_selector: cts
ref: ${{ github.sha }}
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 }}
extra_cmake_args: -DDPCPP_FLAGS=-fsycl-use-spirv-backend-for-spirv-gen
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 w/ LLVM SPIR-V Backend
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
- name: SYCL-CTS on L0 PVC w/ LLVM SPIR-V Backend
runner: '["Linux", "pvc"]'
image: ghcr.io/intel/llvm/ubuntu2404_intel_drivers:latest
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: ${{ matrix.image }}
image_options: ${{ matrix.image_options }}
target_devices: ${{ matrix.target_devices }}
tests_selector: cts
ref: ${{ github.sha }}
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
# nightly_build_upload:
# name: Nightly Build Upload
# if: ${{ github.ref_name == 'sycl' }}
# needs: [ubuntu2204_build, build-win]
# runs-on: ubuntu-latest
# permissions:
# contents: write
# steps:
# - uses: actions/download-artifact@v4
# with:
# name: sycl_linux_default
# - uses: actions/download-artifact@v4
# with:
# name: sycl_windows_default
# - name: Compute tag
# id: tag
# run: |
# if [ "${{ github.event_name == 'schedule' }}" == "true" ]; then
# echo "TAG=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
# else
# # TODO: Use date of the commit?
# echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
# fi
# - name: Upload binaries
# uses: softprops/action-gh-release@v2.2.1
# with:
# files: |
# sycl_linux.tar.gz
# sycl_windows.tar.gz
# tag_name: nightly-${{ steps.tag.outputs.TAG }}
# name: DPC++ daily ${{ steps.tag.outputs.TAG }}
# prerelease: true
# body: "Daily build ${{ steps.tag.outputs.TAG }}"
# target_commitish: ${{ github.sha }}
# docker_build_push:
# if: github.repository == 'intel/llvm'
# runs-on: [Linux, build]
# permissions:
# packages: write
# needs: ubuntu2204_build
# steps:
# - uses: actions/checkout@v4
# - uses: actions/download-artifact@v4
# with:
# name: sycl_linux_default
# path: devops/
# - name: Build and Push Container
# uses: ./devops/actions/build_container
# with:
# push: ${{ github.ref_name == 'sycl' }}
# file: nightly
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
# build-args: |
# base_image=ghcr.io/intel/llvm/ubuntu2404_intel_drivers
# base_tag=alldeps
# tags: |
# ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:${{ github.sha }}
# ghcr.io/${{ github.repository }}/sycl_ubuntu2404_nightly:latest