-
Notifications
You must be signed in to change notification settings - Fork 217
147 lines (138 loc) · 5.03 KB
/
nightly-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#===============================================================================
# Copyright contributors to the oneDAL project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#===============================================================================
name: Nightly-build
on:
schedule:
- cron: '0 21 * * *'
pull_request:
branches:
- main
paths:
- .github/workflows/nightly-build.yml
- .ci/pipeline/ci.yml
- makefile
- '.ci/env/**'
- '.ci/scripts/**'
- 'dev/make/**'
- 'dev/make/compiler_definitions/**'
- 'dev/make/function_definitions/**'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
env:
WINDOWS_ALL_COMPONENTS: 'intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.tbb.devel'
jobs:
build_lnx:
name: oneDAL Linux nightly build
if: github.repository == 'uxlfoundation/oneDAL'
runs-on: ubuntu-24.04
timeout-minutes: 120
steps:
- name: Checkout oneDAL
uses: actions/checkout@v4
- name: Install DPC++
run: .ci/env/apt.sh dpcpp
- name: Install MKL
run: .ci/env/apt.sh mkl
- name: System Info
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/describe_system.sh
- name: Make daal
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/build.sh --compiler icx --optimizations avx2 --target daal
- name: Make onedal
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/build.sh --compiler icx --optimizations avx2 --target onedal
- name: Archive build
uses: actions/upload-artifact@v4
with:
name: __release_lnx
path: ./__release_lnx
- name: Archive oneDAL environment
uses: actions/upload-artifact@v4
with:
name: oneDAL_env
path: .ci/env
build_win:
name: oneDAL Windows nightly build
if: github.repository == 'uxlfoundation/oneDAL'
runs-on: windows-2022
timeout-minutes: 120
steps:
- name: Checkout oneDAL
uses: actions/checkout@v4
- name: Install DPC++
shell: cmd
run: |
set PATH=C:\msys64\usr\bin;%PATH%
for /f "delims=" %%i in ('grep -oP -m 1 "(?<=WINDOWS_BASEKIT_URL: ).*" .ci\pipeline\ci.yml') do set "baseurl=%%i"
call .ci\scripts\install_basekit.bat %baseurl:'="% ${{ env.WINDOWS_ALL_COMPONENTS }} .\oneapi\
- name: Prepare Intel OpenCL CPU runtime
run: |
# Store the unpacked runtime to centralize and reduce external downloads
& .ci/scripts/collect_opencl_rt.ps1
- name: System Info
shell: cmd
run: |
set PATH=C:\msys64\usr\bin;%PATH%
pip install cpufeature
call .\oneapi\setvars.bat
bash .ci/scripts/describe_system.sh
- name: Make daal
shell: cmd
run: |
call .\oneapi\setvars.bat
call .\.ci\scripts\build.bat daal vc avx2
- name: Make onedal
shell: cmd
run: |
call .\oneapi\setvars.bat
call .\.ci\scripts\build.bat onedal_c vc avx2
- name: Make oneapi_dpc
shell: cmd
run: |
call .\oneapi\setvars.bat
call .\oneapi\compiler\latest\bin\sycl-ls.exe
call .\.ci\scripts\build.bat onedal_dpc vc avx2
- name: Compress Intel BaseKit
shell: cmd
run: |
# change absolute symlinks to relative symlinks for reuse (fix issue in Intel BaseKit)
# iterate through all dirs in basekit (%%s), use dir to find the symlink target for symlinks named 'latest' (%%H)
# delete the symlink, and make a new symlink using the last foldername (%%~nxH) in a relative fashion
for /D %%s in (.\oneapi\*) do for /f "tokens=2 delims=[]" %%H in ('dir /al %%s\ ^| findstr /i /c:"latest"') do rmdir %%s\latest & mklink /D %%s\latest .\%%~nxH
tar -cvzf oneapi.tar.gz .\oneapi
- name: Archive build
uses: actions/upload-artifact@v4
with:
name: __release_win
path: .\__release_win_vc
- name: Archive Intel BaseKit
uses: actions/upload-artifact@v4
with:
name: intel_oneapi_basekit
path: .\oneapi.tar.gz
- name: Archive Intel OpenCL CPU runtime
uses: actions/upload-artifact@v4
with:
name: opencl_rt_installer
path: .\opencl_rt.msi