33
33
34
34
jobs :
35
35
36
- # Calculate some useful variables that can be used through the workflow
37
- # Currently this can be used to exclude all but certain targets in matrices
38
- workflow_vars :
39
- runs-on : ubuntu-22.04
40
- outputs :
41
- matrix_only_linux_x86_64_aarch64 : ${{ steps.vars.outputs.matrix_only_linux_x86_64_aarch64 }}
42
- matrix_only_linux_x86_64 : ${{ steps.vars.outputs.matrix_only_linux_x86_64 }}
43
- steps :
44
- - id : vars
45
- # TODO: If we expand on this, come up with a more programmatical way of doing only certain targets.
46
- # These variables are for excluding certain targets from the total list, which is why just including
47
- # two targets is a long list of excludes
48
- run : |
49
- echo matrix_only_linux_x86_64_aarch64="[ {\"target\": \"host_arm_linux\"}, {\"target\": \"host_riscv64_linux\"}, {\"target\": \"host_refsi_linux\"}, {\"target\": \"host_i686_linux\"}, {\"target\": \"host_x86_64_windows\"}]" >> $GITHUB_OUTPUT
50
- echo matrix_only_linux_x86_64="[ {\"target\": \"host_aarch64_linux\"}, {\"target\": \"host_riscv64_linux\"}, {\"target\": \"host_arm_linux\"}, {\"target\": \"host_refsi_linux\"}, {\"target\": \"host_i686_linux\"}, {\"target\": \"host_x86_64_windows\"}]" >> $GITHUB_OUTPUT
51
- cat $GITHUB_OUTPUT
52
-
53
-
54
- create_ock_artefacts :
55
- needs : [workflow_vars]
56
- strategy :
57
- matrix :
58
- target : ${{ fromJson(inputs.target_list) }}
59
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64_aarch64) }}
60
-
61
- # risc-v needs ubuntu 24.04 so we get the latest qemu as well as how we
62
- # build llvm. Otherwise we choose windows or ubuntu-22.04 depending on the
63
- # target.
64
- runs-on : ${{ (contains(matrix.target, 'host_riscv') && 'ubuntu-24.04') || (contains(matrix.target, 'windows') && 'windows-2019' || 'ubuntu-22.04' ) }}
65
- if : inputs.ock
66
- steps :
67
- - name : Checkout repo
68
- uses : actions/checkout@v4
69
- - name : build ock artefact
70
- uses : ./.github/actions/do_build_ock_artefact
71
- with :
72
- target : ${{ matrix.target }}
73
- llvm_version : ${{ inputs.llvm_version }}
74
-
75
- build_icd :
76
- if : inputs.test_tornado || inputs.test_opencl_cts || inputs.test_sycl_cts
77
- needs : [workflow_vars]
78
- strategy :
79
- matrix :
80
- target : ${{ fromJson(inputs.target_list) }}
81
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64_aarch64) }}
82
-
83
- runs-on : ubuntu-22.04
84
- steps :
85
- - name : clone ock platform
86
- uses : actions/checkout@v4
87
- with :
88
- sparse-checkout : |
89
- platform
90
- .github
91
- - name : build and upload icd ${{matrix.target}}
92
- uses : ./.github/actions/do_build_icd
93
- with :
94
- target : ${{matrix.target}}
95
-
96
-
97
- # Currently only builds and runs on x86_64 linux
98
- build_run_tornado :
99
- if : inputs.test_tornado
100
- needs : [ workflow_vars, build_icd, create_ock_artefacts ]
101
- strategy :
102
- matrix :
103
- target : ${{ fromJson(inputs.target_list) }}
104
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }}
105
-
106
- # Todo: expand for aarch64
107
- runs-on : ubuntu-22.04
108
- steps :
109
- - name : clone ock platform
110
- uses : actions/checkout@v4
111
- with :
112
- sparse-checkout : |
113
- platform
114
- .github
115
- # TODO: Consider separating out tornado build and run in the future
116
- - name : build and upload tornado
117
- uses : ./.github/actions/do_build_tornado
118
- with :
119
- target : ${{ matrix.target }}
120
- - name : run tornado
121
- uses : ./.github/actions/run_tornado
122
- with :
123
- target : ${{ matrix.target }}
124
-
125
36
# Currently only builds and runs (default: quick) on x86_64 linux
126
37
build_run_opencl_cts :
127
38
if : inputs.test_opencl_cts
128
- needs : [ workflow_vars, build_icd, create_ock_artefacts ]
129
39
strategy :
130
40
matrix :
131
41
target : ${{ fromJson(inputs.target_list) }}
@@ -143,65 +53,8 @@ jobs:
143
53
scripts
144
54
source
145
55
.github
146
- # TODO: Consider separating out opencl_cts build and run in the future
147
- - name : build and upload opencl_cts
148
- uses : ./.github/actions/do_build_opencl_cts
149
- with :
150
- target : ${{ matrix.target }}
151
56
- name : run opencl_cts
152
57
uses : ./.github/actions/run_opencl_cts
153
58
with :
154
59
target : ${{ matrix.target }}
155
60
156
- build_dpcpp_native_host :
157
- needs : [workflow_vars]
158
- strategy :
159
- matrix :
160
- target : ${{ fromJson(inputs.target_list) }}
161
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }}
162
-
163
- runs-on : ${{ contains(matrix.target, 'windows') && 'windows-2019' || 'ubuntu-22.04' }}
164
- if : inputs.test_sycl_cts
165
- steps :
166
- - name : Checkout repo
167
- uses : actions/checkout@v4
168
- - name : build dpc++ artefact
169
- uses : ./.github/actions/do_build_dpcpp
170
- with :
171
- target : ${{ matrix.target }}
172
-
173
- build_sycl_cts :
174
- needs : [workflow_vars, build_icd, build_dpcpp_native_host]
175
- strategy :
176
- matrix :
177
- target : ${{ fromJson(inputs.target_list) }}
178
- # TODO: For now just linux x86_64
179
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }}
180
-
181
- runs-on : ' ubuntu-22.04'
182
- if : inputs.test_sycl_cts
183
- steps :
184
- - name : Checkout repo
185
- uses : actions/checkout@v4
186
- - name : build dpc++ artefact
187
- uses : ./.github/actions/do_build_sycl_cts
188
- with :
189
- target : ${{ matrix.target }}
190
-
191
- run_sycl_cts :
192
- needs : [workflow_vars, create_ock_artefacts, build_dpcpp_native_host, build_sycl_cts]
193
- strategy :
194
- matrix :
195
- target : ${{ fromJson(inputs.target_list) }}
196
- # TODO: For now just linux x86_64
197
- exclude : ${{ fromJson(needs.workflow_vars.outputs.matrix_only_linux_x86_64) }}
198
-
199
- runs-on : ' ubuntu-22.04'
200
- if : inputs.test_sycl_cts
201
- steps :
202
- - name : Checkout repo
203
- uses : actions/checkout@v4
204
- - name : build dpc++ artefact
205
- uses : ./.github/actions/run_sycl_cts
206
- with :
207
- target : ${{ matrix.target }}
0 commit comments