@@ -63,12 +63,14 @@ jobs:
63
63
pull_request_number : ${{ steps.pr_info.outputs.pr_number }}
64
64
pull_request_base : ${{ steps.pr_info.outputs.pr_base }}
65
65
pull_request_commit : ${{ steps.pr_info.outputs.merge_commit }}
66
- llvm_commit : ${{ steps.repo_info .outputs.llvm_commit }}
67
- pybind11_commit : ${{ steps.repo_info .outputs.pybind11_commit }}
66
+ llvm_commit : ${{ steps.build_config .outputs.llvm_commit }}
67
+ pybind11_commit : ${{ steps.build_config .outputs.pybind11_commit }}
68
68
cache_base : ${{ steps.build_info.outputs.cache_base }}
69
69
cache_target : ${{ steps.build_info.outputs.cache_target }}
70
70
multi_platform : ${{ steps.build_info.outputs.multi_platform }}
71
71
platforms : ${{ steps.build_info.outputs.platforms }}
72
+ build_dependencies : ${{ steps.build_config.outputs.build_dependencies }}
73
+ create_packages : ${{ steps.build_config.outputs.create_packages }}
72
74
environment : ${{ steps.build_info.outputs.environment }}
73
75
74
76
steps :
@@ -159,15 +161,22 @@ jobs:
159
161
ref : " ${{ steps.pr_info.outputs.merge_commit }}"
160
162
161
163
- name : Configure build
162
- id : repo_info
164
+ id : build_config
163
165
run : |
164
166
echo "llvm_commit=$(git rev-parse @:./tpls/llvm)" >> $GITHUB_OUTPUT
165
167
echo "pybind11_commit=$(git rev-parse @:./tpls/pybind11)" >> $GITHUB_OUTPUT
166
168
169
+ if ${{ github.event_name != 'workflow_run' || steps.pr_info.outputs.pr_number != '' }}; then
170
+ echo "build_dependencies=true" >> $GITHUB_OUTPUT
171
+ fi
172
+ if ${{ github.event_name == 'workflow_dispatch' && ! inputs.update_registry_cache }}; then
173
+ echo "create_packages=true" >> $GITHUB_OUTPUT
174
+ fi
175
+
167
176
devdeps :
168
177
name : Build dev dependencies
169
178
needs : metadata
170
- if : github.event_name != 'workflow_run' || needs.metadata.outputs.pull_request_number != ' '
179
+ if : needs.metadata.outputs.build_dependencies == 'true '
171
180
strategy :
172
181
matrix :
173
182
platform : ${{ fromJson(needs.metadata.outputs.multi_platform || needs.metadata.outputs.platforms).ids }}
@@ -195,7 +204,7 @@ jobs:
195
204
wheeldeps :
196
205
name : Build wheel dependencies
197
206
needs : metadata
198
- if : github.event_name != 'workflow_run' || needs.metadata.outputs.pull_request_number != ' '
207
+ if : needs.metadata.outputs.build_dependencies == 'true '
199
208
strategy :
200
209
matrix :
201
210
# There are currently no multi-platform manylinux images available.
@@ -229,7 +238,7 @@ jobs:
229
238
source_build :
230
239
name : Build cross-platform dependencies
231
240
needs : metadata
232
- if : github.event_name != 'workflow_run' || needs.metadata.outputs.pull_request_number != ' '
241
+ if : needs.metadata.outputs.build_dependencies == 'true '
233
242
strategy :
234
243
matrix :
235
244
platform : ${{ fromJson(needs.metadata.outputs.platforms).ids }}
@@ -260,7 +269,7 @@ jobs:
260
269
openmpi :
261
270
name : Build Open MPI
262
271
needs : metadata
263
- if : github.event_name != 'workflow_run' || needs.metadata.outputs.pull_request_number != ' '
272
+ if : needs.metadata.outputs.build_dependencies == 'true '
264
273
strategy :
265
274
matrix :
266
275
platform : ${{ fromJson(needs.metadata.outputs.multi_platform || needs.metadata.outputs.platforms).ids }}
@@ -311,20 +320,36 @@ jobs:
311
320
# https://github.com/actions/runner/pull/2477
312
321
config :
313
322
name : Configure build
314
- needs : [devdeps, wheeldeps, source_build, openmpi]
315
- if : github.event_name == 'workflow_dispatch' && ! inputs.update_registry_cache
323
+ needs : [metadata, devdeps, wheeldeps, source_build, openmpi]
324
+ if : needs.metadata.outputs.create_packages == 'true'
316
325
runs-on : ubuntu-latest
317
326
318
327
outputs :
319
328
json : " ${{ steps.read_json.outputs.result }}"
320
- devdeps_toolchain : gcc11
321
329
322
330
steps :
323
331
-
uses :
cloudposse/[email protected]
324
332
id : read_json
325
333
with :
326
334
matrix-step-name : dev_environment
327
335
336
+ coverage :
337
+ name : Update code coverage
338
+ needs : [metadata, config]
339
+ if : needs.metadata.outputs.multi_platform != ''
340
+ strategy :
341
+ matrix :
342
+ platform : [amd64]
343
+ toolchain : [clang16]
344
+ fail-fast : false
345
+ uses : ./.github/workflows/generate_cc.yml
346
+ secrets :
347
+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
348
+ with :
349
+ platform : linux/${{ matrix.platform }}
350
+ devdeps_image : ${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-{1}', fromJson(needs.metadata.outputs.multi_platform).ids[0], matrix.toolchain)] }}
351
+ export_environment : false
352
+
328
353
extdevdeps :
329
354
name : Create dev environment
330
355
needs : [metadata, config, openmpi]
@@ -340,10 +365,10 @@ jobs:
340
365
with :
341
366
platforms : ${{ fromJson(needs.metadata.outputs.multi_platform || needs.metadata.outputs.platforms)[format('{0}', matrix.platform)].docker_flag }}
342
367
dockerfile : build/devdeps.ext.Dockerfile
343
- build_config_id : cu${{ matrix.cuda_version }}-${{ needs.config.outputs.devdeps_toolchain }}
368
+ build_config_id : cu${{ matrix.cuda_version }}-gcc11
344
369
build_args : |
345
370
cuda_version=${{ matrix.cuda_version }}
346
- base_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-{1} ', matrix.platform, needs.config.outputs.devdeps_toolchain )] }}
371
+ base_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-gcc11 ', matrix.platform)] }}
347
372
ompidev_image=${{ fromJson(needs.config.outputs.json).image_hash[format('{0}-cu{1}-ompi', matrix.platform, matrix.cuda_version)] }}
348
373
${{ matrix.cuda_version != '11.8' && 'cuda_packages=cuda-cudart cuda-nvrtc cuda-compiler libcublas-dev libcusolver libnvjitlink' || '' }}
349
374
registry_cache_from : ${{ needs.metadata.outputs.cache_base }}
0 commit comments