Skip to content

Commit 84557ab

Browse files
committed
Fix GitHub workflow jobs so they run, upgrade Swift toolchain, Android API & NDK versions.
1 parent 2660c1f commit 84557ab

File tree

1 file changed

+38
-26
lines changed

1 file changed

+38
-26
lines changed

.github/workflows/build.yml

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,19 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
include:
17-
- branch: development
18-
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
17+
- swift_release_tag_name: "20251130.0"
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+
source: custom
26+
github-repo: thebrowsercompany/swift-build
27+
github-token: ${{ github.token }}
28+
release-tag-name: ${{ matrix.swift_release_tag_name }}
29+
release-asset-name: installer-amd64.exe
2830

2931
- uses: actions/checkout@v4
3032

@@ -49,19 +51,21 @@ jobs:
4951
fail-fast: false
5052
matrix:
5153
include:
52-
- branch: development
53-
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
54+
- swift_release_tag_name: "20251130.0"
5455
options: -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include
5556

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

5859
steps:
5960
- uses: compnerd/gha-setup-vsdevenv@main
6061

6162
- uses: compnerd/gha-setup-swift@main
6263
with:
63-
tag: ${{ matrix.tag }}
64-
branch: ${{ matrix.branch }}
64+
source: custom
65+
github-repo: thebrowsercompany/swift-build
66+
github-token: ${{ github.token }}
67+
release-tag-name: ${{ matrix.swift_release_tag_name }}
68+
release-asset-name: installer-amd64.exe
6569

6670
- uses: actions/checkout@v4
6771

@@ -94,34 +98,32 @@ jobs:
9498
strategy:
9599
fail-fast: false
96100
matrix:
101+
# TODO: Remove the following workaround from `options`, due to missing `libclang_rt.builtins.a`
102+
# and `libunwind.a` libraries in the Swift toolchain:
103+
# -Xclang-linker -resource-dir -Xclang-linker ${env:ANDROID_NDK_ROOT}\toolchains\llvm\prebuilt\windows-x86_64\lib\clang\18
97104
include:
98-
- branch: development
99-
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
100-
105+
- swift_release_tag_name: "20251130.0"
101106
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
107+
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
103108
target: aarch64-unknown-linux-android28
104109

105-
- branch: development
106-
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
107-
110+
- swift_release_tag_name: "20251130.0"
108111
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
112+
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
110113
target: x86_64-unknown-linux-android28
111114

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

114117
steps:
115118
- uses: compnerd/gha-setup-vsdevenv@main
116119

117120
- uses: compnerd/gha-setup-swift@main
118121
with:
119-
# tag: ${{ matrix.tag }}
120-
# branch: ${{ atrix.branch }}
122+
source: custom
121123
github-repo: thebrowsercompany/swift-build
122-
github-token: ${{ secrets.GITHUB_TOKEN }}
124+
github-token: ${{ github.token }}
125+
release-tag-name: ${{ matrix.swift_release_tag_name }}
123126
release-asset-name: installer-amd64.exe
124-
release-tag-name: "20240909.3"
125127

126128
- uses: actions/checkout@v4
127129

@@ -139,7 +141,7 @@ jobs:
139141
- uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
140142
id: setup-ndk
141143
with:
142-
ndk-version: r26d
144+
ndk-version: r27c
143145

144146
- uses: actions/setup-java@v4
145147
with:
@@ -148,7 +150,17 @@ jobs:
148150

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

153165
- name: Configure
154166
env:
@@ -160,7 +172,7 @@ jobs:
160172
-S ${{ github.workspace }} `
161173
-D CMAKE_SYSTEM_NAME=Android `
162174
-D CMAKE_ANDROID_ARCH_ABI=${{ matrix.abi }} `
163-
-D CMAKE_ANDROID_API=21 `
175+
-D CMAKE_ANDROID_API=28 `
164176
-D CMAKE_Swift_COMPILER_TARGET=${{ matrix.target }} `
165177
-D CMAKE_Swift_COMPILER_WORKS=YES `
166178
-D CMAKE_Swift_FLAGS="${{ matrix.options }}" `

0 commit comments

Comments
 (0)