Open
Description
I've had requests for an Android workflow, both using my unofficial SDK, finagolfin/swift-android-sdk#127, and for whenever an official Android SDK is available. Rather than waiting for an official Android SDK first, I thought I could put together an Android workflow here that builds the Android SDK from source on first use, then uses it to cross-compile that Swift package that invoked this workflow on its CI and run its tests in the Android emulator, before finally caching the freshly-built Android SDK on that Swift package's CI for subsequent test runs.
Here are some further details:
- I'd start off with Swift 6.1 only, building from the latest snapshot tag, then add other release branches later.
- linux-only for build host initially, add macOS later
- I currently download some pre-compiled libraries for Android from another OSS project for my SDK bundle supporting Android API 24: a backported
posix_spawn()
wrapper to Android API 24 and libcurl/libxml2 for Foundation. I'd simply require Android API 28, whenposix_spawn()
was added to Android, and removeFoundationNetworking
andFoundationXML
support for this workflow, looking into ways to add those back later, so no such external libraries would be required for this workflow. - I'd simply use an existing external Android emulator workflow, as I do on my Android CI. We could look into removing that external dependency later, if wanted.
- Once an official Android SDK is available, we could make that the default, and make this fresh build an alternate option for those who want it.
@FranzBusch or @shahmishal, let me know if you'd be okay with adding such an Android workflow here, will put together a pull if so.
Metadata
Metadata
Assignees
Labels
No labels