-
Notifications
You must be signed in to change notification settings - Fork 7
Refactor CI build #121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor CI build #121
Conversation
So to summarize: Windows:
Linux:
MacOS - dylib:
Android - all unchanged, cross-compiled from linux x64:
xcframework - unchanged, all (cross-)compiled from macos x64:
@simolus3 Could you please check that this list is correct? |
That list is correct for Windows, Linux and Android. Since recently, the xcframework contains additional targets (aarch64-apple-watchos, aarch64-apple-watchos-sim, x86_64-apple-watchos-sim, arm64_32-apple-watchos, aarch64-apple-tvos, aarch64-apple-tvos-sim, x86_64-apple-tvos). It's also worth noting that GH is in the process of upgrading |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new structure looks great, and it looks like this would now support practically every platform a user could want to use.
I see, I updated the list. I got the initial list from the Edit: Reading up about this, it looks like since we're using |
This refactors the CI build with the goal of making non-released branches easier to test and to re-use build logic between the test and the release workflow.
Similar to the setup we already have for Android, this moves the build of all binaries into a composite
.github/actions/
action. The last step of that action is to upload the binaries it compiled as an asset. For Dart tests and the release, those assets are downloaded instead of compiling the core extension again. A neat side-effect of this is that we're guaranteed to test the libraries in the exact same way as we'll release them. Since the retention time of artifacts has been increased to 14 days, it has become a bit easier to test unreleased branches by updating download URLs in client packages (previously, one would always have to use a local build of the core extension).I've also changed the linux build to run on x86-64 only, cross-compiling for multiple targets instead of using an aarch64 host. That also adds builds for armv7 and riscv64gc Linux, ensuring we support all Linux targets supported by Dart.
Since someone asked for it, I've also added 32-bit x86 builds for Windows and Linux.
In addition to the x86-64 Linux and aarch64 macOS targets previously used to run Dart tests, we're now running Dart tests on aarch64 ubuntu and both x86-64 and aarch64 Windows too.