Skip to content

Commit 54b3c24

Browse files
committed
Fix the expansion of the Linux host arch matrix
1 parent fe7a90a commit 54b3c24

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

.github/workflows/pull_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
with:
2727
# Linux
2828
linux_os_versions: '["jammy", "rhel-ubi9", "amazonlinux2"]'
29-
linux_host_archs: '["x86_64", "aarch64"]'
29+
linux_host_archs: '["x86_64"]'
3030
linux_build_command: |
3131
cd tests/TestPackage
3232
swift build

.github/workflows/swift_package_test.yml

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,29 @@ jobs:
302302
run: ${{ inputs.ios_build_command }} ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }}
303303
timeout-minutes: 60
304304

305+
define-linux-matrix:
306+
runs-on: ubuntu-latest
307+
outputs:
308+
runner_map: ${{ steps.runners.outputs.runners }}
309+
steps:
310+
- name: Define Linux Runners
311+
id: runners
312+
run: |
313+
archs='${{ inputs.linux_host_archs }}'
314+
full_map='{
315+
"x86_64": "ubuntu-24.04",
316+
"aarch64": "ubuntu-24.04-arm",
317+
}'
318+
# Build dynamic map for only selected archs
319+
runner_map=$(jq -c --argjson archs "$archs" --argjson full "$full_map" '
320+
reduce $archs[] as $a ({}; .[$a] = $full[$a])
321+
' <<< '{}')
322+
echo "runner_map=$runner_map" >> $GITHUB_OUTPUT
323+
305324
linux-build:
306325
name: Linux (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
307-
runs-on: ${{ matrix.runner }}
326+
needs: define-linux-matrix
327+
runs-on: ${{ fromJson(needs.define-linux-matrix.outputs.runner_map)[matrix.arch] }}
308328
strategy:
309329
fail-fast: false
310330
matrix:
@@ -316,11 +336,6 @@ jobs:
316336
- ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_swift_versions) || '[]') }}
317337
- ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_os_versions) || '[]') }}
318338
- ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_host_archs) || '[]') }}
319-
include:
320-
- arch: x86_64
321-
runner: ubuntu-24.04
322-
- arch: aarch64
323-
runner: ubuntu-24.04-arm
324339
container:
325340
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
326341
steps:
@@ -378,7 +393,8 @@ jobs:
378393

379394
linux-static-sdk-build:
380395
name: Static Linux Swift SDK Build (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
381-
runs-on: ${{ matrix.runner }}
396+
needs: define-linux-matrix
397+
runs-on: ${{ fromJson(needs.define-linux-matrix.outputs.runner_map)[matrix.arch] }}
382398
strategy:
383399
fail-fast: false
384400
matrix:
@@ -390,11 +406,6 @@ jobs:
390406
- ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_static_sdk_versions) || '[]') }}
391407
- ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_os_versions) || '[]') }}
392408
- ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_host_archs) || '[]') }}
393-
include:
394-
- arch: x86_64
395-
runner: ubuntu-24.04
396-
- arch: aarch64
397-
runner: ubuntu-24.04-arm
398409
container:
399410
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
400411
steps:

0 commit comments

Comments
 (0)