@@ -224,20 +224,38 @@ on:
224224 default : false
225225
226226jobs :
227+ generate :
228+ name : ' '
229+ runs-on : ubuntu-latest
230+ outputs :
231+ enable_macos_checks : " false"
232+ enable_ios_checks : " false"
233+ enable_linux_checks : " false"
234+ enable_linux_static_sdk_build : " false"
235+ enable_wasm_sdk_build : " false"
236+ enable_embedded_wasm_sdk_build : " false"
237+ enable_android_sdk_build : " false"
238+ enable_windows_checks : " false"
239+ steps :
240+ - name : Generate
241+ run : echo
242+
227243 macos-build :
228244 name : macOS (Xcode ${{ matrix.xcode_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
245+ needs : generate
246+ if : ${{ needs.generate.outputs.enable_macos_checks }}
229247 runs-on : [self-hosted, macos, "${{ matrix.os_version }}", "${{ matrix.arch }}"]
230248 strategy :
231249 fail-fast : false
232250 matrix :
251+ matrix_enabled :
252+ - ${{ inputs.enable_macos_checks }}
233253 xcode_version : ${{ fromJson(inputs.macos_xcode_versions) }}
234254 os_version : ${{ fromJson(inputs.macos_versions) }}
235255 arch : ${{ fromJson(inputs.macos_archs) }}
236256 exclude :
237257 - ${{ fromJson(inputs.macos_exclude_xcode_versions) }}
238- - ${{ fromJson((!inputs.enable_macos_checks && inputs.macos_xcode_versions) || '[]') }}
239- - ${{ fromJson((!inputs.enable_macos_checks && inputs.macos_versions) || '[]') }}
240- - ${{ fromJson((!inputs.enable_macos_checks && inputs.macos_archs) || '[]') }}
258+ - matrix_enabled : false
241259 steps :
242260 - name : Checkout repository
243261 uses : actions/checkout@v4
@@ -266,18 +284,20 @@ jobs:
266284
267285 ios-build :
268286 name : iOS (Build Only, Xcode ${{ matrix.xcode_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
287+ needs : generate
288+ if : ${{ needs.generate.outputs.enable_ios_checks }}
269289 runs-on : [self-hosted, macos, "${{ matrix.os_version }}", "${{ matrix.arch }}"]
270290 strategy :
271291 fail-fast : false
272292 matrix :
293+ matrix_enabled :
294+ - ${{ inputs.enable_ios_checks }}
273295 xcode_version : ${{ fromJson(inputs.ios_host_xcode_versions || inputs.macos_xcode_versions) }}
274296 os_version : ${{ fromJson(inputs.ios_host_versions || inputs.macos_versions) }}
275297 arch : ${{ fromJson(inputs.ios_host_archs || inputs.macos_archs) }}
276298 exclude :
277299 - ${{ fromJson(inputs.ios_host_exclude_xcode_versions || inputs.macos_exclude_xcode_versions) }}
278- - ${{ fromJson((!inputs.enable_ios_checks && (inputs.ios_host_xcode_versions || inputs.macos_xcode_versions)) || '[]') }}
279- - ${{ fromJson((!inputs.enable_ios_checks && (inputs.ios_host_versions || inputs.macos_versions)) || '[]') }}
280- - ${{ fromJson((!inputs.enable_ios_checks && (inputs.ios_host_archs || inputs.macos_archs)) || '[]') }}
300+ - matrix_enabled : false
281301 steps :
282302 - name : Checkout repository
283303 uses : actions/checkout@v4
@@ -304,10 +324,14 @@ jobs:
304324
305325 linux-build :
306326 name : Linux (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
327+ needs : generate
328+ if : ${{ needs.generate.outputs.enable_linux_checks }}
307329 runs-on : ${{ matrix.runner }}
308330 strategy :
309331 fail-fast : false
310332 matrix :
333+ matrix_enabled :
334+ - ${{ inputs.enable_linux_checks }}
311335 swift_version : ${{ fromJson(inputs.linux_swift_versions) }}
312336 os_version : ${{ fromJson(inputs.linux_os_versions) }}
313337 arch : ${{ fromJson(inputs.linux_host_archs) }}
@@ -322,9 +346,7 @@ jobs:
322346 }}
323347 exclude :
324348 - ${{ fromJson(inputs.linux_exclude_swift_versions) }}
325- - ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_swift_versions) || '[]') }}
326- - ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_os_versions) || '[]') }}
327- - ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_host_archs) || '[]') }}
349+ - matrix_enabled : false
328350 - arch : x86_64
329351 runner : ubuntu-24.04-arm
330352 - arch : aarch64
@@ -386,10 +408,14 @@ jobs:
386408
387409 linux-static-sdk-build :
388410 name : Static Linux Swift SDK Build (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
411+ needs : generate
412+ if : ${{ needs.generate.outputs.enable_linux_static_sdk_build }}
389413 runs-on : ${{ matrix.runner }}
390414 strategy :
391415 fail-fast : false
392416 matrix :
417+ matrix_enabled :
418+ - ${{ inputs.enable_linux_static_sdk_build }}
393419 swift_version : ${{ fromJson(inputs.linux_static_sdk_versions) }}
394420 os_version : ${{ fromJson(inputs.linux_os_versions) }}
395421 arch : ${{ fromJson(inputs.linux_host_archs) }}
@@ -404,9 +430,7 @@ jobs:
404430 }}
405431 exclude :
406432 - ${{ fromJson(inputs.linux_static_sdk_exclude_swift_versions) }}
407- - ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_static_sdk_versions) || '[]') }}
408- - ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_os_versions) || '[]') }}
409- - ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_host_archs) || '[]') }}
433+ - matrix_enabled : false
410434 - arch : x86_64
411435 runner : ubuntu-24.04-arm
412436 - arch : aarch64
@@ -467,16 +491,21 @@ jobs:
467491
468492 wasm-sdk-build :
469493 name : Swift SDK for Wasm Build (${{ matrix.swift_version }} - ${{ matrix.os_version }})
470- runs-on : ubuntu-latest
494+ needs : generate
495+ if : ${{ needs.generate.outputs.enable_wasm_sdk_build }}
496+ runs-on : ${{ matrix.runner }}
471497 strategy :
472498 fail-fast : false
473499 matrix :
500+ matrix_enabled :
501+ - ${{ inputs.enable_wasm_sdk_build }}
474502 swift_version : ${{ fromJson(inputs.wasm_sdk_versions) }}
475503 os_version : ${{ fromJson(inputs.linux_os_versions) }}
504+ runner :
505+ - ubuntu-latest
476506 exclude :
477507 - ${{ fromJson(inputs.wasm_exclude_swift_versions) }}
478- - ${{ fromJson((!inputs.enable_wasm_sdk_build && inputs.wasm_sdk_versions) || '[]') }}
479- - ${{ fromJson((!inputs.enable_wasm_sdk_build && inputs.linux_os_versions) || '[]') }}
508+ - matrix_enabled : false
480509 container :
481510 image : ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
482511 steps :
@@ -533,16 +562,21 @@ jobs:
533562
534563 embedded-wasm-sdk-build :
535564 name : Embedded Swift SDK for Wasm Build (${{ matrix.swift_version }} - ${{ matrix.os_version }})
536- runs-on : ubuntu-latest
565+ needs : generate
566+ if : ${{ needs.generate.outputs.enable_embedded_wasm_sdk_build }}
567+ runs-on : ${{ matrix.runner }}
537568 strategy :
538569 fail-fast : false
539570 matrix :
571+ matrix_enabled :
572+ - ${{ inputs.enable_embedded_wasm_sdk_build }}
573+ runner :
574+ - ubuntu-latest
540575 swift_version : ${{ fromJson(inputs.wasm_sdk_versions) }}
541576 os_version : ${{ fromJson(inputs.linux_os_versions) }}
542577 exclude :
543578 - ${{ fromJson(inputs.wasm_exclude_swift_versions) }}
544- - ${{ fromJson((!inputs.enable_embedded_wasm_sdk_build && inputs.wasm_sdk_versions) || '[]') }}
545- - ${{ fromJson((!inputs.enable_embedded_wasm_sdk_build && inputs.linux_os_versions) || '[]') }}
579+ - matrix_enabled : false
546580 container :
547581 image : ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
548582 steps :
@@ -599,18 +633,22 @@ jobs:
599633
600634 android-sdk-build :
601635 name : Swift SDK for Android Build (${{ matrix.swift_version }} - ${{ matrix.os_version }} - NDK ${{ matrix.ndk_version }})
602- runs-on : ubuntu-latest
636+ needs : generate
637+ if : ${{ needs.generate.outputs.enable_android_sdk_build }}
638+ runs-on : ${{ matrix.runner }}
603639 strategy :
604640 fail-fast : false
605641 matrix :
642+ matrix_enabled :
643+ - ${{ inputs.enable_android_sdk_build }}
644+ runner :
645+ - ubuntu-latest
606646 swift_version : ${{ fromJson(inputs.android_sdk_versions) }}
607647 ndk_version : ${{ fromJson(inputs.android_ndk_versions) }}
608648 os_version : ${{ fromJson(inputs.linux_os_versions) }}
609649 exclude :
610650 - ${{ fromJson(inputs.android_exclude_swift_versions) }}
611- - ${{ fromJson((!inputs.enable_android_sdk_build && inputs.android_sdk_versions) || '[]') }}
612- - ${{ fromJson((!inputs.enable_android_sdk_build && inputs.android_ndk_versions) || '[]') }}
613- - ${{ fromJson((!inputs.enable_android_sdk_build && inputs.linux_os_versions) || '[]') }}
651+ - matrix_enabled : false
614652 container :
615653 image : ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
616654 steps :
@@ -667,16 +705,19 @@ jobs:
667705
668706 windows-build :
669707 name : Windows (${{ matrix.swift_version }} - ${{ matrix.os_version }})
708+ needs : generate
709+ if : ${{ needs.generate.outputs.enable_windows_checks }}
670710 runs-on : ${{ matrix.os_version }}
671711 strategy :
672712 fail-fast : false
673713 matrix :
714+ matrix_enabled :
715+ - ${{ inputs.enable_windows_checks }}
674716 swift_version : ${{ fromJson(inputs.windows_swift_versions) }}
675717 os_version : ${{ fromJson(inputs.windows_os_versions) }}
676718 exclude :
677719 - ${{ fromJson(inputs.windows_exclude_swift_versions) }}
678- - ${{ fromJson((!inputs.enable_windows_checks && inputs.windows_swift_versions) || '[]') }}
679- - ${{ fromJson((!inputs.enable_windows_checks && inputs.windows_os_versions) || '[]') }}
720+ - matrix_enabled : false
680721 steps :
681722 - name : Checkout repository
682723 uses : actions/checkout@v4
0 commit comments