Skip to content

Commit bd541c3

Browse files
Add support for Linux on aarch64 (#207)
# Conflicts: # .github/workflows/swift_package_test.yml
1 parent b3cca9d commit bd541c3

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

.github/workflows/pull_request.yml

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

.github/workflows/swift_package_test.yml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ on:
5050
type: string
5151
description: "Linux OS version list (JSON)"
5252
default: "[\"jammy\"]"
53+
linux_host_archs:
54+
type: string
55+
description: "Linux arch list (JSON)"
56+
default: "[\"x86_64\"]"
5357
linux_static_sdk_versions:
5458
type: string
5559
description: "Static Linux Swift SDK version list (JSON)"
@@ -299,17 +303,24 @@ jobs:
299303
timeout-minutes: 60
300304

301305
linux-build:
302-
name: Linux (${{ matrix.swift_version }} - ${{ matrix.os_version }})
303-
runs-on: ubuntu-latest
306+
name: Linux (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
307+
runs-on: ${{ matrix.runner }}
304308
strategy:
305309
fail-fast: false
306310
matrix:
307311
swift_version: ${{ fromJson(inputs.linux_swift_versions) }}
308312
os_version: ${{ fromJson(inputs.linux_os_versions) }}
313+
arch: ${{ fromJson(inputs.linux_host_archs) }}
309314
exclude:
310315
- ${{ fromJson(inputs.linux_exclude_swift_versions) }}
311316
- ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_swift_versions) || '[]') }}
312317
- ${{ fromJson((!inputs.enable_linux_checks && inputs.linux_os_versions) || '[]') }}
318+
- ${{ 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
313324
container:
314325
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
315326
steps:
@@ -366,17 +377,24 @@ jobs:
366377
run: ${{ inputs.linux_build_command }} ${{ (contains(matrix.swift_version, 'nightly') && inputs.swift_nightly_flags) || inputs.swift_flags }}
367378

368379
linux-static-sdk-build:
369-
name: Static Linux Swift SDK Build (${{ matrix.swift_version }} - ${{ matrix.os_version }})
370-
runs-on: ubuntu-latest
380+
name: Static Linux Swift SDK Build (${{ matrix.swift_version }} - ${{ matrix.os_version }} - ${{ matrix.arch }})
381+
runs-on: ${{ matrix.runner }}
371382
strategy:
372383
fail-fast: false
373384
matrix:
374385
swift_version: ${{ fromJson(inputs.linux_static_sdk_versions) }}
375386
os_version: ${{ fromJson(inputs.linux_os_versions) }}
387+
arch: ${{ fromJson(inputs.linux_host_archs) }}
376388
exclude:
377389
- ${{ fromJson(inputs.linux_static_sdk_exclude_swift_versions) }}
378390
- ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_static_sdk_versions) || '[]') }}
379391
- ${{ fromJson((!inputs.enable_linux_static_sdk_build && inputs.linux_os_versions) || '[]') }}
392+
- ${{ 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
380398
container:
381399
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
382400
steps:

0 commit comments

Comments
 (0)