test: package integration
Smoke test our binary XCFramework build for every combination of platform (ios, tvos etc) package manager (spm, cocoapods, carthage) and certain sdk variant combinations (static, dynamic, swiftui)
Add them to release.yml, so that this validation can happen after building the XCFramework for PRs, but before running the craft plugin for releases.
#skip-changelog
Performance metrics :rocket:
| Plain | With Sentry | Diff | |
|---|---|---|---|
| Startup time | 1223.29 ms | 1242.98 ms | 19.69 ms |
| Size | 23.75 KiB | 905.30 KiB | 881.55 KiB |
Baseline results on branch: main
Startup times
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 248195076dafba5bac1b3aa7668eacd5267886e2 | 1221.04 ms | 1248.98 ms | 27.94 ms |
| a9fac2ee07f3f3fdfcfaa629a365dc234afa7678 | 1212.45 ms | 1219.67 ms | 7.22 ms |
| 99104c9cbeb272fbbfef2b32c54c0529a17d471f | 1224.84 ms | 1247.08 ms | 22.24 ms |
| 7148f97e25599cdcfda4b0b8dec0329e155b90f1 | 1235.09 ms | 1258.07 ms | 22.98 ms |
| 62799929787f2fedf64bbf922cda9e40ff7232b1 | 1213.60 ms | 1241.38 ms | 27.79 ms |
| aa96485c2c8bc1d7a75c5b779d1f0605948be3cf | 1215.37 ms | 1234.04 ms | 18.67 ms |
| fc0757dafef9fca8b8101395728bae8800c6a65a | 1231.83 ms | 1248.98 ms | 17.15 ms |
| 7c7ac56f381bb42b528ad2126860309bd98f0803 | 1225.90 ms | 1250.22 ms | 24.33 ms |
| 8e3a42f16ceb4fb58a8096f10cb83ecb76bcc9e2 | 1222.90 ms | 1245.67 ms | 22.77 ms |
| 51f74d7f7217c4dd878ee94087f21336417b3598 | 1236.31 ms | 1247.43 ms | 11.12 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 248195076dafba5bac1b3aa7668eacd5267886e2 | 23.74 KiB | 872.74 KiB | 849.00 KiB |
| a9fac2ee07f3f3fdfcfaa629a365dc234afa7678 | 23.75 KiB | 879.53 KiB | 855.78 KiB |
| 99104c9cbeb272fbbfef2b32c54c0529a17d471f | 23.75 KiB | 894.83 KiB | 871.09 KiB |
| 7148f97e25599cdcfda4b0b8dec0329e155b90f1 | 23.75 KiB | 854.78 KiB | 831.03 KiB |
| 62799929787f2fedf64bbf922cda9e40ff7232b1 | 23.75 KiB | 891.03 KiB | 867.28 KiB |
| aa96485c2c8bc1d7a75c5b779d1f0605948be3cf | 23.75 KiB | 874.46 KiB | 850.71 KiB |
| fc0757dafef9fca8b8101395728bae8800c6a65a | 23.75 KiB | 850.73 KiB | 826.98 KiB |
| 7c7ac56f381bb42b528ad2126860309bd98f0803 | 23.75 KiB | 902.49 KiB | 878.74 KiB |
| 8e3a42f16ceb4fb58a8096f10cb83ecb76bcc9e2 | 23.75 KiB | 880.06 KiB | 856.31 KiB |
| 51f74d7f7217c4dd878ee94087f21336417b3598 | 23.74 KiB | 874.08 KiB | 850.34 KiB |
Current status here is that almost all integration projects are able to compile and link, except for the carthage projects targeting a platform other than iOS. I'm debugging the carthage executable to see what's up with it: it unzips the xcframeworks zip and then only retains the iOS slices, which are not the correct ones.
They work locally, just iterating on getting them working on CI.
Current status: all the tests pass except the Carthage non-iOS jobs, because somehow the xcframework that winds up in the Carthage/Build directory always only contains iOS images. Looking into how we build the xcframework, what gets uploaded/downloaded by the actions jobs for those, [un]zipping and the Carthage binary itself.