Skip to content

Commit

Permalink
[CI] New workflow for Nightly on sycl-rel (#16297)
Browse files Browse the repository at this point in the history
We're working on setting a validation for sycl-rel branches. This PR
introduces a new workflow to run Nightly on sycl-rel-* branches.

GH actions allows to run scheduled workflows only if the workflow is on
the default branch. So we have to checkout to the current rel branch for
every job.
  • Loading branch information
KornevNikita authored Dec 13, 2024
1 parent f162749 commit 09e1d41
Show file tree
Hide file tree
Showing 3 changed files with 188 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/sycl-aws.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ on:
description: "JSON string with array of objects with aws-type, runs-on, aws-ami, aws-spot, aws-disk, aws-timebomb, one-job properties"
type: string
default: '[{"runs-on":"aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}","aws-ami":"ami-01cb0573cb039ab24","aws-type":["g5.2xlarge","g5.4xlarge"],"aws-disk":"/dev/sda1:64","aws-spot":"false"}]'
ref:
type: string
required: false

jobs:
aws:
Expand All @@ -24,6 +27,7 @@ jobs:
- uses: actions/checkout@v4
with:
sparse-checkout: devops/actions/aws-ec2
ref: ${{ inputs.ref || github.sha }}
- run: npm install ./devops/actions/aws-ec2
- uses: ./devops/actions/aws-ec2
with:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/sycl-linux-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ on:
description: 'Artifacts retention period'
type: string
default: 3
ref:
type: string
required: false

outputs:
build_conclusion:
Expand Down Expand Up @@ -143,6 +146,7 @@ jobs:
with:
sparse-checkout: |
devops/actions
ref: ${{ inputs.ref || github.sha }}
# Cleanup will be run after all actions are completed.
- name: Register cleanup after job is finished
uses: ./devops/actions/cleanup
Expand Down
180 changes: 180 additions & 0 deletions .github/workflows/sycl-rel-nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
name: SYCL Release Branch Nightly

on:
workflow_dispatch:
schedule:
- cron: '0 3 * * *'

permissions: read-all

env:
# NOTE: so that GitHub Actions can trigger the scheduled workflow run - the
# workflow file should be on the default branch. Therefore every job should
# checkout the release branch.
SYCL_REL_BRANCH: "draft-sycl-rel-6_0_0"

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:
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: ${{ env.SYCL_REL_BRANCH }}
- 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: v6
build_configure_extra_args: '--hip --cuda'
merge_ref: ''
ref: ${{ env.SYCL_REL_BRANCH }}

# 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: 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 -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
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 -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
extra_lit_opts: --param gpu-intel-gen12=True

- name: Intel OCL CPU
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: 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: ${{ env.SYCL_REL_BRANCH }}
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:
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:
# 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
build_ref: ${{ env.SYCL_REL_BRANCH }}

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
ref: ${{ env.SYCL_REL_BRANCH }}

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: ${{ env.SYCL_REL_BRANCH }}

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: ${{ env.SYCL_REL_BRANCH }}
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
ref: ${{ env.SYCL_REL_BRANCH }}

0 comments on commit 09e1d41

Please sign in to comment.