Skip to content

Commit 09e1d41

Browse files
authored
[CI] New workflow for Nightly on sycl-rel (#16297)
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.
1 parent f162749 commit 09e1d41

File tree

3 files changed

+188
-0
lines changed

3 files changed

+188
-0
lines changed

.github/workflows/sycl-aws.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ on:
1515
description: "JSON string with array of objects with aws-type, runs-on, aws-ami, aws-spot, aws-disk, aws-timebomb, one-job properties"
1616
type: string
1717
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"}]'
18+
ref:
19+
type: string
20+
required: false
1821

1922
jobs:
2023
aws:
@@ -24,6 +27,7 @@ jobs:
2427
- uses: actions/checkout@v4
2528
with:
2629
sparse-checkout: devops/actions/aws-ec2
30+
ref: ${{ inputs.ref || github.sha }}
2731
- run: npm install ./devops/actions/aws-ec2
2832
- uses: ./devops/actions/aws-ec2
2933
with:

.github/workflows/sycl-linux-build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ on:
5050
description: 'Artifacts retention period'
5151
type: string
5252
default: 3
53+
ref:
54+
type: string
55+
required: false
5356

5457
outputs:
5558
build_conclusion:
@@ -143,6 +146,7 @@ jobs:
143146
with:
144147
sparse-checkout: |
145148
devops/actions
149+
ref: ${{ inputs.ref || github.sha }}
146150
# Cleanup will be run after all actions are completed.
147151
- name: Register cleanup after job is finished
148152
uses: ./devops/actions/cleanup
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
name: SYCL Release Branch Nightly
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: '0 3 * * *'
7+
8+
permissions: read-all
9+
10+
env:
11+
# NOTE: so that GitHub Actions can trigger the scheduled workflow run - the
12+
# workflow file should be on the default branch. Therefore every job should
13+
# checkout the release branch.
14+
SYCL_REL_BRANCH: "draft-sycl-rel-6_0_0"
15+
16+
jobs:
17+
# To avoid unnecessary scheduled runs this job checks if there are new commits
18+
# since the last run. More precisely, it checks if the last commit is older
19+
# than 24h. That means the previous Nightly already tested this commit.
20+
check_for_new_commits:
21+
runs-on: ubuntu-latest
22+
name: Check for new commits
23+
outputs:
24+
is_new_commit: ${{ steps.is_new_commit.outputs.is_new_commit }}
25+
steps:
26+
- uses: actions/checkout@v4
27+
with:
28+
ref: ${{ env.SYCL_REL_BRANCH }}
29+
- run: git show --quiet | tee -a $GITHUB_STEP_SUMMARY
30+
31+
- id: is_new_commit
32+
if: ${{ github.event_name == 'schedule' }}
33+
run: |
34+
if [ -z "$(git rev-list --after="24 hours" HEAD)" ]; then
35+
echo "is_new_commit=false" >> $GITHUB_OUTPUT
36+
fi
37+
38+
ubuntu2204_build:
39+
needs: [check_for_new_commits]
40+
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
41+
uses: ./.github/workflows/sycl-linux-build.yml
42+
secrets: inherit
43+
with:
44+
build_cache_root: "/__w/"
45+
build_artifact_suffix: v6
46+
build_configure_extra_args: '--hip --cuda'
47+
merge_ref: ''
48+
ref: ${{ env.SYCL_REL_BRANCH }}
49+
50+
# We upload the build for people to download/use, override its name and
51+
# prefer widespread gzip compression.
52+
artifact_archive_name: sycl_linux.tar.gz
53+
54+
ubuntu2204_test:
55+
needs: [ubuntu2204_build]
56+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
57+
strategy:
58+
fail-fast: false
59+
matrix:
60+
include:
61+
- name: AMD/HIP
62+
runner: '["Linux", "amdgpu"]'
63+
image: ghcr.io/intel/llvm/ubuntu2204_build:latest
64+
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
65+
target_devices: ext_oneapi_hip:gpu
66+
tests_selector: e2e
67+
68+
- name: Intel L0 GPU
69+
runner: '["Linux", "gen12"]'
70+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
71+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
72+
target_devices: level_zero:gpu
73+
reset_intel_gpu: true
74+
tests_selector: e2e
75+
extra_lit_opts: --param gpu-intel-gen12=True
76+
77+
- name: Intel OCL GPU
78+
runner: '["Linux", "gen12"]'
79+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
80+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
81+
target_devices: opencl:gpu
82+
reset_intel_gpu: true
83+
tests_selector: e2e
84+
extra_lit_opts: --param gpu-intel-gen12=True
85+
86+
- name: Intel OCL CPU
87+
runner: '["Linux", "gen12"]'
88+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
89+
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
90+
target_devices: opencl:cpu
91+
tests_selector: e2e
92+
93+
- name: SYCL-CTS on OCL CPU
94+
runner: '["Linux", "gen12"]'
95+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
96+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
97+
target_devices: opencl:cpu
98+
tests_selector: cts
99+
100+
- name: SYCL-CTS on L0 gen12
101+
runner: '["Linux", "gen12"]'
102+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
103+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
104+
target_devices: level_zero:gpu
105+
tests_selector: cts
106+
uses: ./.github/workflows/sycl-linux-run-tests.yml
107+
with:
108+
name: ${{ matrix.name }}
109+
runner: ${{ matrix.runner }}
110+
image: ${{ matrix.image }}
111+
image_options: ${{ matrix.image_options }}
112+
target_devices: ${{ matrix.target_devices }}
113+
tests_selector: ${{ matrix.tests_selector }}
114+
extra_lit_opts: ${{ matrix.extra_lit_opts }}
115+
reset_intel_gpu: ${{ matrix.reset_intel_gpu }}
116+
ref: ${{ env.SYCL_REL_BRANCH }}
117+
merge_ref: ''
118+
sycl_toolchain_artifact: sycl_linux_default
119+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
120+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
121+
122+
build-win:
123+
needs: [check_for_new_commits]
124+
if: ${{ github.repository == 'intel/llvm' && needs.check_for_new_commits.outputs.is_new_commit != 'false' }}
125+
uses: ./.github/workflows/sycl-windows-build.yml
126+
with:
127+
# We upload both Linux/Windows build via Github's "Releases"
128+
# functionality, make sure Linux/Windows names follow the same pattern.
129+
artifact_archive_name: sycl_windows.tar.gz
130+
build_ref: ${{ env.SYCL_REL_BRANCH }}
131+
132+
e2e-win:
133+
needs: build-win
134+
# Continue if build was successful.
135+
if: |
136+
always()
137+
&& !cancelled()
138+
&& needs.build-win.outputs.build_conclusion == 'success'
139+
uses: ./.github/workflows/sycl-windows-run-tests.yml
140+
with:
141+
name: Intel GEN12 Graphics with Level Zero
142+
runner: '["Windows","gen12"]'
143+
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
144+
extra_lit_opts: --param gpu-intel-gen12=True
145+
ref: ${{ env.SYCL_REL_BRANCH }}
146+
147+
cuda-aws-start:
148+
needs: [ubuntu2204_build]
149+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
150+
uses: ./.github/workflows/sycl-aws.yml
151+
secrets: inherit
152+
with:
153+
mode: start
154+
ref: ${{ env.SYCL_REL_BRANCH }}
155+
156+
cuda-run-tests:
157+
needs: [ubuntu2204_build, cuda-aws-start]
158+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
159+
uses: ./.github/workflows/sycl-linux-run-tests.yml
160+
with:
161+
name: CUDA E2E
162+
runner: '["aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}"]'
163+
image: ghcr.io/intel/llvm/ubuntu2204_build:latest-0300ac924620a51f76c4929794637b82790f12ab
164+
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
165+
target_devices: ext_oneapi_cuda:gpu
166+
ref: ${{ env.SYCL_REL_BRANCH }}
167+
merge_ref: ''
168+
169+
sycl_toolchain_artifact: sycl_linux_default
170+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
171+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
172+
173+
cuda-aws-stop:
174+
needs: [cuda-aws-start, cuda-run-tests]
175+
if: always()
176+
uses: ./.github/workflows/sycl-aws.yml
177+
secrets: inherit
178+
with:
179+
mode: stop
180+
ref: ${{ env.SYCL_REL_BRANCH }}

0 commit comments

Comments
 (0)