Skip to content

SYCL Nightly

SYCL Nightly #315

Workflow file for this run

name: SYCL Nightly
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * *'
jobs:
test_matrix:
if: github.repository == 'intel/llvm'
name: Generate Test Matrix
uses: ./.github/workflows/sycl_gen_test_matrix.yml
with:
lts_config: "hip_amdgpu;ocl_gen12;ocl_x64;l0_gen12;esimd_emu;cuda_aws;win_l0_gen12"
ubuntu2204_build_test:
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_linux_build_and_test.yml
needs: test_matrix
secrets: inherit
with:
build_cache_root: "/__w/"
build_artifact_suffix: default
build_configure_extra_args: '--hip --cuda --enable-esimd-emulator'
merge_ref: ''
retention-days: 90
lts_matrix: ${{ needs.test_matrix.outputs.lts_lx_matrix }}
lts_aws_matrix: ${{ needs.test_matrix.outputs.lts_aws_matrix }}
# We upload the build for people to download/use, override its name and
# prefer widespread gzip compression.
artifact_archive_name: sycl_linux.tar.gz
windows_default:
name: Windows
if: github.repository == 'intel/llvm'
uses: ./.github/workflows/sycl_windows_build_and_test.yml
needs: test_matrix
with:
retention-days: 90
lts_matrix: ${{ needs.test_matrix.outputs.lts_wn_matrix }}
# 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
nightly_build_upload:
name: Nightly Build Upload
if: ${{ github.ref_name == 'sycl' }}
needs: [ubuntu2204_build_test, windows_default]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: sycl_linux_default
- uses: actions/download-artifact@v3
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@de2c0eb89ae2a093876385947365aca7b0e5f844
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]
needs: ubuntu2204_build_test
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
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