Skip to content

Commit 2660c1f

Browse files
committed
GHA: setup CMake based builds on Android
This sets up some initial CI support Android to ensure that we do not accidentally regress the Android builds while we are improving swift-firebase.
1 parent d2d951b commit 2660c1f

File tree

1 file changed

+98
-7
lines changed

1 file changed

+98
-7
lines changed

.github/workflows/build.yml

Lines changed: 98 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
1919
options: -Xswiftc "-I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include"
2020

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

2323
steps:
2424
- uses: compnerd/gha-setup-swift@main
@@ -31,10 +31,12 @@ jobs:
3131
- uses: dsaltares/fetch-gh-release-asset@a40c8b4a0471f9ab81bdf73a010f74cc51476ad4 # v1.1.1
3232
with:
3333
repo: thebrowsercompany/firebase-cpp-sdk
34-
version: tags/20240511.0
34+
version: tags/20240909.0
3535
file: firebase-windows-amd64.zip
3636

37-
- run: Expand-Archive -Path firebase-windows-amd64.zip -DestinationPath third_party; Rename-Item -Path third_party/firebase -NewName firebase-development
37+
- run: |
38+
Expand-Archive -Path firebase-windows-amd64.zip -DestinationPath third_party
39+
Rename-Item -Path third_party/firebase-windows-amd64 -NewName firebase-development
3840
shell: powershell
3941
4042
- name: Build
@@ -51,7 +53,7 @@ jobs:
5153
tag: DEVELOPMENT-SNAPSHOT-2024-02-08-a
5254
options: -I${env:SDKROOT}\..\..\..\..\..\..\Toolchains\0.0.0+Asserts\usr\include
5355

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

5658
steps:
5759
- uses: compnerd/gha-setup-vsdevenv@main
@@ -66,14 +68,103 @@ jobs:
6668
- uses: dsaltares/fetch-gh-release-asset@a40c8b4a0471f9ab81bdf73a010f74cc51476ad4 # v1.1.1
6769
with:
6870
repo: thebrowsercompany/firebase-cpp-sdk
69-
version: tags/20240511.0
71+
version: tags/20240909.0
7072
file: firebase-windows-amd64.zip
7173

72-
- run: Expand-Archive -Path firebase-windows-amd64.zip -DestinationPath third_party; Rename-Item -Path third_party/firebase -NewName firebase-development
74+
- run: |
75+
Expand-Archive -Path firebase-windows-amd64.zip -DestinationPath third_party
76+
Rename-Item -Path third_party/firebase-windows-amd64 -NewName firebase-development
7377
shell: powershell
7478
7579
- name: Configure
76-
run: cmake -B out -D CMAKE_BUILD_TYPE=Release -G Ninja -S ${{ github.workspace }} -D CMAKE_Swift_FLAGS="${{ matrix.options }}" -D SWIFT_FIREBASE_BUILD_EXAMPLES=NO
80+
run: |
81+
cmake -B out `
82+
-D CMAKE_BUILD_TYPE=Release `
83+
-G Ninja `
84+
-S ${{ github.workspace }} `
85+
-D CMAKE_Swift_FLAGS="${{ matrix.options }}" `
86+
-D SWIFT_FIREBASE_BUILD_EXAMPLES=NO
87+
88+
- name: Build
89+
run: cmake --build out
90+
91+
android:
92+
runs-on: windows-latest
93+
94+
strategy:
95+
fail-fast: false
96+
matrix:
97+
include:
98+
- branch: development
99+
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
100+
101+
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
103+
target: aarch64-unknown-linux-android28
104+
105+
- branch: development
106+
tag: DEVELOPMENT-SNAPSHOT-2024-08-02-a
107+
108+
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
110+
target: x86_64-unknown-linux-android28
111+
112+
name: CMake (Android) - Swift ${{ matrix.tag }}
113+
114+
steps:
115+
- uses: compnerd/gha-setup-vsdevenv@main
116+
117+
- uses: compnerd/gha-setup-swift@main
118+
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"
125+
126+
- uses: actions/checkout@v4
127+
128+
- uses: dsaltares/fetch-gh-release-asset@a40c8b4a0471f9ab81bdf73a010f74cc51476ad4 # v1.1.1
129+
with:
130+
repo: thebrowsercompany/firebase-cpp-sdk
131+
version: tags/20240909.0
132+
file: firebase-android-${{ matrix.abi }}.zip
133+
134+
- run: |
135+
Expand-Archive -Path firebase-android-${{ matrix.abi }}.zip -DestinationPath third_party
136+
Rename-Item -Path third_party/firebase-android-${{ matrix.abi}} -NewName firebase-development
137+
shell: powershell
138+
139+
- uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 # v1.5.0
140+
id: setup-ndk
141+
with:
142+
ndk-version: r26d
143+
144+
- uses: actions/setup-java@v4
145+
with:
146+
java-version: 17
147+
distribution: temurin
148+
149+
- uses: android-actions/setup-android@00854ea68c109d98c75d956347303bf7c45b0277 # v3.2.1
150+
with:
151+
packages: 'platforms;android-21'
152+
153+
- name: Configure
154+
env:
155+
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
156+
run: |
157+
cmake -B out `
158+
-D CMAKE_BUILD_TYPE=RelWithDebInfo `
159+
-G Ninja `
160+
-S ${{ github.workspace }} `
161+
-D CMAKE_SYSTEM_NAME=Android `
162+
-D CMAKE_ANDROID_ARCH_ABI=${{ matrix.abi }} `
163+
-D CMAKE_ANDROID_API=21 `
164+
-D CMAKE_Swift_COMPILER_TARGET=${{ matrix.target }} `
165+
-D CMAKE_Swift_COMPILER_WORKS=YES `
166+
-D CMAKE_Swift_FLAGS="${{ matrix.options }}" `
167+
-D SWIFT_FIREBASE_BUILD_EXAMPLES=NO
77168
78169
- name: Build
79170
run: cmake --build out

0 commit comments

Comments
 (0)