Skip to content

SYCL Nightly

SYCL Nightly #266

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'
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/ubuntu2204_build:latest
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
target_devices: ext_oneapi_hip:gpu
tests_selector: e2e
- name: Intel L0 GPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True
- name: Intel OCL GPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:gpu
reset_intel_gpu: true
tests_selector: e2e
extra_lit_opts: --param gpu-intel-gen12=True
- name: OCL CPU (AMD)
runner: '["Linux", "amdgpu"]'
image: ghcr.io/intel/llvm/ubuntu2204_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/ubuntu2204_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/ubuntu2204_intel_drivers:latest
image_options: -u 1001
target_devices: opencl:cpu
tests_selector: e2e
- name: SYCL-CTS on OCL CPU
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: opencl:cpu
tests_selector: cts
- name: SYCL-CTS on L0 gen12
runner: '["Linux", "gen12"]'
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
target_devices: level_zero:gpu
tests_selector: cts
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: ${{ 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 }}
extra_lit_opts: --param gpu-intel-gen12=True
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-0300ac924620a51f76c4929794637b82790f12ab
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
target_devices: ext_oneapi_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()
uses: ./.github/workflows/sycl-aws.yml
secrets: inherit
with:
mode: stop
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@a74c6b72af54cfa997e81df42d94703d6313a2d0
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 }}
ubuntu2204_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 (with drivers)
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
base_tag=latest
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:latest
- name: Build and Push Container (no drivers)
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2204_base
base_tag=latest
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers-${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers
- name: Build and Push Container (Build image)
uses: ./devops/actions/build_container
with:
push: ${{ github.ref_name == 'sycl' }}
file: ubuntu2204_preinstalled
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
build-args: |
base_image=ghcr.io/intel/llvm/ubuntu2204_build
base_tag=latest
tags: |
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build-${{ github.sha }}
ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build