Skip to content

ci: refactor xcframework build workflows #5277

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

Conversation

armcknight
Copy link
Member

@armcknight armcknight commented May 21, 2025

Separately from #5218, and also for #4925, try to consolidate the new workflow implementation so it's not duplicated in the 3 places it's needed (build, release, benchmark)

One extra benefit here is that the UI test workflow that build the xcframework seems to have built two variants of it: Sentry-Dynamic and Sentry (the static lib). But, only the static lib was actually being used. So in addition to getting a faster build, we halved the amount of compute being used.

Another is that it's more obvious what each workflow is actually using, instead of having to dig through makefile, then build script logic, to see which xcframework variant is being build for "iOSOnly" or "gameOnly" parameters and which SDKs it's building for, including maccatalyst.

A third is that we don't need to build the mac catalyst version of the xcframework for the app size increase metric. The first comparison after merging to main will be smaller than the last one build with mac catalyst, but then going forward when like is compared to like, this check will be fine again, just run faster.

Improvements in CI times for the jobs using the reusable workflows:

Also, an improvement on #5218 is that the reusable workflow invocations with two stages of matrices are grouped by outer jobs instead of all being in one flat list, unordered (new vs old):

new old
_image image

#skip-changelog

@armcknight armcknight marked this pull request as ready for review May 23, 2025 05:40
Copy link
Contributor

github-actions bot commented May 23, 2025

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1230.06 ms 1247.49 ms 17.43 ms
Size 23.76 KiB 824.86 KiB 801.10 KiB

Previous results on branch: armcknight/ci/refactor-xcframework-build-workflows

Startup times

Revision Plain With Sentry Diff
aa808ba 1213.37 ms 1245.27 ms 31.90 ms

App size

Revision Plain With Sentry Diff
aa808ba 23.76 KiB 824.86 KiB 801.09 KiB

Copy link
Contributor

@itaybre itaybre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
I would try to remove Carthage from the paths at some point, but that can be done later

@armcknight armcknight merged commit fee2b24 into armcknight/ci/parallelize-xcframework-build May 23, 2025
70 checks passed
@armcknight armcknight deleted the armcknight/ci/refactor-xcframework-build-workflows branch May 23, 2025 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants