Skip to content

Commit adaa559

Browse files
committed
Fix GitHub workflow jobs so they run, upgrade Swift toolchain, Android API & NDK versions.
1 parent b3891e5 commit adaa559

File tree

1 file changed

+31
-28
lines changed

1 file changed

+31
-28
lines changed

.github/workflows/build.yml

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
include:
17-
- branch: development
18-
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
17+
- swift_development_build: DEVELOPMENT-SNAPSHOT-2025-09-21-a
1918
options: -Xswiftc "-I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include"
2019

21-
name: SPM (Windows) - Swift ${{ matrix.tag }}
20+
name: SPM (Windows) - Swift ${{ matrix.swift_release_tag_name }}
2221

2322
steps:
2423
- uses: compnerd/gha-setup-swift@main
2524
with:
26-
tag: ${{ matrix.tag }}
27-
branch: ${{ matrix.branch }}
25+
swift-version: development
26+
swift-build: ${{ matrix.swift_development_build }}
2827

2928
- uses: actions/checkout@v4
3029

@@ -49,19 +48,18 @@ jobs:
4948
fail-fast: false
5049
matrix:
5150
include:
52-
- branch: development
53-
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
51+
- swift_development_build: DEVELOPMENT-SNAPSHOT-2025-09-21-a
5452
options: -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include
5553

56-
name: CMake (Windows) - Swift ${{ matrix.tag }}
54+
name: CMake (Windows) - Swift ${{ matrix.swift_release_tag_name }}
5755

5856
steps:
5957
- uses: compnerd/gha-setup-vsdevenv@main
6058

6159
- uses: compnerd/gha-setup-swift@main
6260
with:
63-
tag: ${{ matrix.tag }}
64-
branch: ${{ matrix.branch }}
61+
swift-version: development
62+
swift-build: ${{ matrix.swift_development_build }}
6563

6664
- uses: actions/checkout@v4
6765

@@ -94,34 +92,29 @@ jobs:
9492
strategy:
9593
fail-fast: false
9694
matrix:
95+
# TODO: Remove the following workaround from `options`, due to missing `libclang_rt.builtins.a`
96+
# and `libunwind.a` libraries in the Swift toolchain:
97+
# -Xclang-linker -resource-dir -Xclang-linker ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\18
9798
include:
98-
- branch: development
99-
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
100-
99+
- swift_development_build: DEVELOPMENT-SNAPSHOT-2025-11-03-a
101100
abi: arm64-v8a
102-
options: -sdk ${env:SDKROOT}..\..\..\..\Android.platform\Developer\SDKs\Android.sdk -sysroot ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\sysroot -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include -I${env:SDKROOT}\usr\include -Xlinker -zdefs
101+
options: -sdk ${env:SDKROOT}..\..\..\..\Android.platform\Developer\SDKs\Android.sdk -sysroot ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\sysroot -Xclang-linker -resource-dir -Xclang-linker ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\18 -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include -I${env:SDKROOT}\usr\include -Xlinker -zdefs
103102
target: aarch64-unknown-linux-android28
104103

105-
- branch: development
106-
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
107-
104+
- swift_development_build: DEVELOPMENT-SNAPSHOT-2025-11-03-a
108105
abi: x86_64
109-
options: -sdk ${env:SDKROOT}..\..\..\..\Android.platform\Developer\SDKs\Android.sdk -sysroot ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\sysroot -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include -I${env:SDKROOT}\usr\include -Xlinker -zdefs
106+
options: -sdk ${env:SDKROOT}..\..\..\..\Android.platform\Developer\SDKs\Android.sdk -sysroot ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\sysroot -Xclang-linker -resource-dir -Xclang-linker ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\18 -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include -I${env:SDKROOT}\usr\include -Xlinker -zdefs
110107
target: x86_64-unknown-linux-android28
111108

112-
name: CMake (Android) - Swift ${{ matrix.tag }}
109+
name: CMake (Android) - Swift ${{ matrix.swift_release_tag_name }} ${{ matrix.abi }}
113110

114111
steps:
115112
- uses: compnerd/gha-setup-vsdevenv@main
116113

117114
- uses: compnerd/gha-setup-swift@main
118115
with:
119-
# tag: ${{ matrix.tag }}
120-
# branch: ${{ atrix.branch }}
121-
github-repo: thebrowsercompany/swift-build
122-
github-token: ${{ secrets.GITHUB_TOKEN }}
123-
release-asset-name: installer-amd64.exe
124-
release-tag-name: "20240909.3"
116+
swift-version: development
117+
swift-build: ${{ matrix.swift_development_build }}
125118

126119
- uses: actions/checkout@v4
127120

@@ -139,7 +132,7 @@ jobs:
139132
- uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
140133
id: setup-ndk
141134
with:
142-
ndk-version: r26d
135+
ndk-version: r27c
143136

144137
- uses: actions/setup-java@v4
145138
with:
@@ -148,7 +141,17 @@ jobs:
148141

149142
- uses: android-actions/setup-android@00854ea68c109d98c75d956347303bf7c45b0277 # v3.2.1
150143
with:
151-
packages: 'platforms;android-21'
144+
packages: 'platforms;android-28'
145+
146+
# TODO: Remove the workaround step below, due to `std::__voidify()` not being accessible
147+
# with the current combination of Swift toolchain and Andoird NDK versions.
148+
- name: Patch out private symbol std::__voidify() in construct_at.h
149+
env:
150+
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
151+
run: |
152+
$construct_at_h_path="${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\__memory\construct_at.h"
153+
(Get-Content $construct_at_h_path) -replace "std::__voidify","(void *) &" | Set-Content $construct_at_h_path
154+
shell: powershell
152155

153156
- name: Configure
154157
env:
@@ -160,7 +163,7 @@ jobs:
160163
-S ${{ github.workspace }} `
161164
-D CMAKE_SYSTEM_NAME=Android `
162165
-D CMAKE_ANDROID_ARCH_ABI=${{ matrix.abi }} `
163-
-D CMAKE_ANDROID_API=21 `
166+
-D CMAKE_ANDROID_API=28 `
164167
-D CMAKE_Swift_COMPILER_TARGET=${{ matrix.target }} `
165168
-D CMAKE_Swift_COMPILER_WORKS=YES `
166169
-D CMAKE_Swift_FLAGS="${{ matrix.options }}" `

0 commit comments

Comments
 (0)