We might as well do it for 8.3.0, so that it and 9.3.x patches can hopefully target the same version.
This means that our CI now runs on ARM64 instead of x86_64 for macOS.
To build HashLink, we need to install x86_64 Homebrew to get the necessary dependencies.
We also need a new enough krdlab/setup-haxe that supports ARM64 macOS, and can run older Haxe versions. This is currently commit 8f35d1215b93e940a76f9470e22e8a5ba6149598, but hopefully, setup-haxe's v2 tag will be updated in the future.
x86_32 is not a commonly used architecture anymore, so it doesn't make much sense to include it by default anymore.
For reference, the Steam hardware survey no longer reports any 32-bit versions of Windows, macOS, or Linux. Windows 7 64-bit is currently 0.15% of Steam users, so presumably, 32-bit of any version of Windows is less than that. Windows 11 doesn't even have a 32-bit variant at all anymore.
We still build x86_32 on CI, to be sure that it will continue to work if someone wants to checkout Lime and build manually.
34 is the minimum required version by Google Play, so it should be default.
Bumping to 34 and 35 requires updating both gradle-version and gradle-plugin-version.
The new versions now require an ndkVersion flag in build.gradle. This can be obtained by reading source.properties in the root of the NDK.
JDK 17 will be required for these updates. Previously required JDK 11.
We're currently using a version of hxcpp from GitHub instead of from Haxelib for macOS ARM64 support. Let's just use that version for all jobs, for consistency. Whenever hxcpp finally gets update on Haxelib, we'll switch to that version.
See pull request for details. Summary:
* Reduce dependencies between CI jobs, allowing more of them to run in parallel.
* Use Linux for as many jobs as possible.
* Merge matching "-ndll" and "-samples" jobs. This way, the latter doesn't have to waste time recreating the former's environment, and the workflow summary is simplified. Downside: this delays package-haxelib.
* Update to a newer macOS version, as the old version massively slowed down Homebrew.
* Skip the HelloWorld test for Mac and iOS, as those two can build slowly under some circumstances, delaying package-haxelib. These could be restored later, if performance seems good enough.
* Add `HAXE_VERSION` environment variable, so future updates will only have to make one change. Unfortunately, doing the same for the Windows/Mac/Linux versions would severely hurt performance, so those remain hard-coded.
* Split up some steps within jobs for better organization.
The docs action only needs to look at Haxe code, so downloading the submodules just wastes 30-50 seconds. That's a lot of time for an action that clocks in at about 2 minutes.