Skip to content

Commit dc6c35a

Browse files
committed
[CI] New workflow for Nightly on sycl-rel
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 a8c6e77 commit dc6c35a

File tree

3 files changed

+251
-0
lines changed

3 files changed

+251
-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: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
name: SYCL Release Branch Nightly
2+
3+
on:
4+
workflow_dispatch:
5+
# TODO: we need to skip the whole workflow if it was launched by cron job, but
6+
# there were no new commits since the last cron run.
7+
# schedule:
8+
# - cron: '0 3 * * *'
9+
10+
permissions: read-all
11+
12+
jobs:
13+
ubuntu2204_build:
14+
if: github.repository == 'intel/llvm'
15+
uses: ./.github/workflows/sycl-linux-build.yml
16+
secrets: inherit
17+
with:
18+
build_cache_root: "/__w/"
19+
build_artifact_suffix: v6
20+
build_configure_extra_args: '--hip --cuda'
21+
merge_ref: ''
22+
retention-days: 90
23+
branch: draft-sycl-rel-6_0_0
24+
25+
# We upload the build for people to download/use, override its name and
26+
# prefer widespread gzip compression.
27+
artifact_archive_name: sycl_linux.tar.gz
28+
29+
ubuntu2204_test:
30+
needs: [ubuntu2204_build]
31+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
32+
strategy:
33+
fail-fast: false
34+
matrix:
35+
include:
36+
- name: AMD/HIP
37+
runner: '["Linux", "amdgpu"]'
38+
image: ghcr.io/intel/llvm/ubuntu2204_build:latest
39+
image_options: -u 1001 --device=/dev/dri --device=/dev/kfd
40+
target_devices: ext_oneapi_hip:gpu
41+
tests_selector: e2e
42+
43+
- name: Intel L0 GPU
44+
runner: '["Linux", "gen12"]'
45+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
46+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
47+
target_devices: level_zero:gpu
48+
reset_intel_gpu: true
49+
tests_selector: e2e
50+
extra_lit_opts: --param gpu-intel-gen12=True
51+
52+
- name: Intel OCL GPU
53+
runner: '["Linux", "gen12"]'
54+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
55+
image_options: -u 1001 --device=/dev/dri -v /dev/dri/by-path:/dev/dri/by-path --privileged --cap-add SYS_ADMIN
56+
target_devices: opencl:gpu
57+
reset_intel_gpu: true
58+
tests_selector: e2e
59+
extra_lit_opts: --param gpu-intel-gen12=True
60+
61+
- name: Intel OCL CPU
62+
runner: '["Linux", "gen12"]'
63+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
64+
image_options: -u 1001 --privileged --cap-add SYS_ADMIN
65+
target_devices: opencl:cpu
66+
tests_selector: e2e
67+
68+
- name: SYCL-CTS on OCL CPU
69+
runner: '["Linux", "gen12"]'
70+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
71+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
72+
target_devices: opencl:cpu
73+
tests_selector: cts
74+
75+
- name: SYCL-CTS on L0 gen12
76+
runner: '["Linux", "gen12"]'
77+
image: ghcr.io/intel/llvm/ubuntu2204_intel_drivers:latest
78+
image_options: -u 1001 --device=/dev/dri --privileged --cap-add SYS_ADMIN
79+
target_devices: level_zero:gpu
80+
tests_selector: cts
81+
uses: ./.github/workflows/sycl-linux-run-tests.yml
82+
with:
83+
name: ${{ matrix.name }}
84+
runner: ${{ matrix.runner }}
85+
image: ${{ matrix.image }}
86+
image_options: ${{ matrix.image_options }}
87+
target_devices: ${{ matrix.target_devices }}
88+
tests_selector: ${{ matrix.tests_selector }}
89+
extra_lit_opts: ${{ matrix.extra_lit_opts }}
90+
reset_intel_gpu: ${{ matrix.reset_intel_gpu }}
91+
ref: draft-sycl-rel-6_0_0
92+
merge_ref: ''
93+
sycl_toolchain_artifact: sycl_linux_default
94+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
95+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
96+
97+
build-win:
98+
uses: ./.github/workflows/sycl-windows-build.yml
99+
if: github.repository == 'intel/llvm'
100+
with:
101+
retention-days: 90
102+
# We upload both Linux/Windows build via Github's "Releases"
103+
# functionality, make sure Linux/Windows names follow the same pattern.
104+
artifact_archive_name: sycl_windows.tar.gz
105+
build_ref: draft-sycl-rel-6_0_0
106+
107+
e2e-win:
108+
needs: build-win
109+
# Continue if build was successful.
110+
if: |
111+
always()
112+
&& !cancelled()
113+
&& needs.build-win.outputs.build_conclusion == 'success'
114+
uses: ./.github/workflows/sycl-windows-run-tests.yml
115+
with:
116+
name: Intel GEN12 Graphics with Level Zero
117+
runner: '["Windows","gen12"]'
118+
sycl_toolchain_archive: ${{ needs.build-win.outputs.artifact_archive_name }}
119+
extra_lit_opts: --param gpu-intel-gen12=True
120+
ref: draft-sycl-rel-6_0_0
121+
122+
cuda-aws-start:
123+
needs: [ubuntu2204_build]
124+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
125+
uses: ./.github/workflows/sycl-aws.yml
126+
secrets: inherit
127+
with:
128+
mode: start
129+
ref: draft-sycl-rel-6_0_0
130+
131+
cuda-run-tests:
132+
needs: [ubuntu2204_build, cuda-aws-start]
133+
if: ${{ always() && !cancelled() && needs.ubuntu2204_build.outputs.build_conclusion == 'success' }}
134+
uses: ./.github/workflows/sycl-linux-run-tests.yml
135+
with:
136+
name: CUDA E2E
137+
runner: '["aws_cuda-${{ github.run_id }}-${{ github.run_attempt }}"]'
138+
image: ghcr.io/intel/llvm/ubuntu2204_build:latest-0300ac924620a51f76c4929794637b82790f12ab
139+
image_options: -u 1001 --gpus all --cap-add SYS_ADMIN --env NVIDIA_DISABLE_REQUIRE=1
140+
target_devices: ext_oneapi_cuda:gpu
141+
ref: draft-sycl-rel-6_0_0
142+
merge_ref: ''
143+
144+
sycl_toolchain_artifact: sycl_linux_default
145+
sycl_toolchain_archive: ${{ needs.ubuntu2204_build.outputs.artifact_archive_name }}
146+
sycl_toolchain_decompress_command: ${{ needs.ubuntu2204_build.outputs.artifact_decompress_command }}
147+
148+
cuda-aws-stop:
149+
needs: [cuda-aws-start, cuda-run-tests]
150+
if: always()
151+
uses: ./.github/workflows/sycl-aws.yml
152+
secrets: inherit
153+
with:
154+
mode: stop
155+
156+
# No binaries upload for now
157+
# nightly_build_upload:
158+
# name: Nightly Build Upload
159+
# if: ${{ github.ref_name == 'sycl' }}
160+
# needs: [ubuntu2204_build, build-win]
161+
# runs-on: ubuntu-latest
162+
# permissions:
163+
# contents: write
164+
# steps:
165+
# - uses: actions/download-artifact@v4
166+
# with:
167+
# name: sycl_linux_default
168+
# - uses: actions/download-artifact@v4
169+
# with:
170+
# name: sycl_windows_default
171+
# - name: Compute tag
172+
# id: tag
173+
# run: |
174+
# if [ "${{ github.event_name == 'schedule' }}" == "true" ]; then
175+
# echo "TAG=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
176+
# else
177+
# # TODO: Use date of the commit?
178+
# echo "TAG=$(date +'%Y-%m-%d')-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
179+
# fi
180+
# - name: Upload binaries
181+
# uses: softprops/action-gh-release@e7a8f85e1c67a31e6ed99a94b41bd0b71bbee6b8
182+
# with:
183+
# files: |
184+
# sycl_linux.tar.gz
185+
# sycl_windows.tar.gz
186+
# tag_name: nightly-${{ steps.tag.outputs.TAG }}
187+
# name: DPC++ daily ${{ steps.tag.outputs.TAG }}
188+
# prerelease: true
189+
# body: "Daily build ${{ steps.tag.outputs.TAG }}"
190+
# target_commitish: ${{ github.sha }}
191+
192+
# No containers update for now
193+
# ubuntu2204_docker_build_push:
194+
# if: github.repository == 'intel/llvm'
195+
# runs-on: [Linux, build]
196+
# permissions:
197+
# packages: write
198+
# needs: ubuntu2204_build
199+
# steps:
200+
# - uses: actions/checkout@v4
201+
# - uses: actions/download-artifact@v4
202+
# with:
203+
# name: sycl_linux_default
204+
# path: devops/
205+
# - name: Build and Push Container (with drivers)
206+
# uses: ./devops/actions/build_container
207+
# with:
208+
# push: ${{ github.ref_name == 'sycl' }}
209+
# file: ubuntu2204_preinstalled
210+
# username: ${{ github.repository_owner }}
211+
# password: ${{ secrets.GITHUB_TOKEN }}
212+
# build-args: |
213+
# base_image=ghcr.io/intel/llvm/ubuntu2204_intel_drivers
214+
# base_tag=latest
215+
# tags: |
216+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:${{ github.sha }}
217+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:latest
218+
# - name: Build and Push Container (no drivers)
219+
# uses: ./devops/actions/build_container
220+
# with:
221+
# push: ${{ github.ref_name == 'sycl' }}
222+
# file: ubuntu2204_preinstalled
223+
# username: ${{ github.repository_owner }}
224+
# password: ${{ secrets.GITHUB_TOKEN }}
225+
# build-args: |
226+
# base_image=ghcr.io/intel/llvm/ubuntu2204_base
227+
# base_tag=latest
228+
# tags: |
229+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers-${{ github.sha }}
230+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:no-drivers
231+
# - name: Build and Push Container (Build image)
232+
# uses: ./devops/actions/build_container
233+
# with:
234+
# push: ${{ github.ref_name == 'sycl' }}
235+
# file: ubuntu2204_preinstalled
236+
# username: ${{ github.repository_owner }}
237+
# password: ${{ secrets.GITHUB_TOKEN }}
238+
# build-args: |
239+
# base_image=ghcr.io/intel/llvm/ubuntu2204_build
240+
# base_tag=latest
241+
# tags: |
242+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build-${{ github.sha }}
243+
# ghcr.io/${{ github.repository }}/sycl_ubuntu2204_nightly:build

0 commit comments

Comments
 (0)