Skip to content

Commit 2b342de

Browse files
[CI] Implement detailed size metrics (#1008)
1 parent fd63af1 commit 2b342de

File tree

6 files changed

+43
-7
lines changed

6 files changed

+43
-7
lines changed

.github/workflows/sdk-size-metrics.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
runs-on: macos-15
1919
env:
2020
GITHUB_TOKEN: '${{ secrets.CI_BOT_GITHUB_TOKEN }}'
21+
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
2122
steps:
2223
- name: Connect Bot
2324
uses: webfactory/ssh-agent@v0.7.0
@@ -28,10 +29,13 @@ jobs:
2829

2930
- uses: ./.github/actions/bootstrap
3031

31-
- name: Run SDK Size Metrics
32+
- name: Run General SDK Size Metrics
3233
run: bundle exec fastlane show_frameworks_sizes
3334
timeout-minutes: 30
3435
env:
35-
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}
3636
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
3737
APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }}
38+
39+
- name: Run Detailed SDK Size Metrics
40+
run: bundle exec fastlane size_analyze
41+
timeout-minutes: 30

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ App Thinning Size Report.txt
100100
app-thinning.plist
101101
*.dmg
102102
yeetd-normal.pkg
103+
*LinkMap.txt
103104

104105
# VSCode
105106
.vscode

Gemfile.lock

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,11 @@ GEM
208208
fastlane
209209
pry
210210
fastlane-plugin-sonarcloud_metric_kit (0.2.1)
211-
fastlane-plugin-stream_actions (0.3.90)
211+
fastlane-plugin-stream_actions (0.3.100)
212212
xctest_list (= 1.2.1)
213213
fastlane-plugin-versioning (0.7.1)
214+
fastlane-plugin-xcsize (1.1.0)
215+
xcsize (= 1.1.0)
214216
fastlane-sirp (1.0.0)
215217
sysrandom (~> 1.0)
216218
ffi (1.17.2)
@@ -413,6 +415,8 @@ GEM
413415
rouge (~> 3.28.0)
414416
xcpretty-travis-formatter (1.0.1)
415417
xcpretty (~> 0.2, >= 0.0.7)
418+
xcsize (1.1.0)
419+
commander (>= 4.6, < 6.0)
416420
xctest_list (1.2.1)
417421

418422
PLATFORMS
@@ -426,8 +430,9 @@ DEPENDENCIES
426430
fastlane-plugin-create_xcframework
427431
fastlane-plugin-lizard
428432
fastlane-plugin-sonarcloud_metric_kit
429-
fastlane-plugin-stream_actions (= 0.3.90)
433+
fastlane-plugin-stream_actions (= 0.3.100)
430434
fastlane-plugin-versioning
435+
fastlane-plugin-xcsize (= 1.1.0)
431436
json
432437
lefthook
433438
plist

StreamChatSwiftUI.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3296,6 +3296,8 @@
32963296
INFOPLIST_KEY_NSHumanReadableCopyright = "";
32973297
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
32983298
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
3299+
LD_GENERATE_MAP_FILE = YES;
3300+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
32993301
LD_RUNPATH_SEARCH_PATHS = (
33003302
"$(inherited)",
33013303
"@executable_path/Frameworks",
@@ -3674,6 +3676,8 @@
36743676
INFOPLIST_KEY_NSHumanReadableCopyright = "";
36753677
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
36763678
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
3679+
LD_GENERATE_MAP_FILE = YES;
3680+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
36773681
LD_RUNPATH_SEARCH_PATHS = (
36783682
"$(inherited)",
36793683
"@executable_path/Frameworks",
@@ -3709,6 +3713,8 @@
37093713
INFOPLIST_KEY_NSHumanReadableCopyright = "";
37103714
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
37113715
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
3716+
LD_GENERATE_MAP_FILE = YES;
3717+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
37123718
LD_RUNPATH_SEARCH_PATHS = (
37133719
"$(inherited)",
37143720
"@executable_path/Frameworks",

fastlane/Fastfile

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ lane :update_img_shields_sdk_sizes do |options|
613613
)
614614
end
615615

616-
def frameworks_sizes
616+
private_lane :frameworks_sizes do
617617
root_dir = 'Build/SDKSize'
618618
archive_dir = "#{root_dir}/DemoApp.xcarchive"
619619

@@ -625,7 +625,9 @@ def frameworks_sizes
625625
scheme: 'DemoAppSwiftUI',
626626
archive_path: archive_dir,
627627
export_method: 'ad-hoc',
628-
export_options: 'fastlane/sdk_size_export_options.plist'
628+
export_options: 'fastlane/sdk_size_export_options.plist',
629+
derived_data_path: derived_data_path,
630+
cloned_source_packages_path: source_packages_path
629631
)
630632

631633
# Parse the thinned size of Assets.car from Packaging.log
@@ -640,3 +642,20 @@ def frameworks_sizes
640642

641643
{ StreamChatSwiftUI: stream_chat_swiftui_size_kb.round(0) }
642644
end
645+
646+
lane :size_analyze do
647+
next unless is_check_required(sources: sources_matrix[:size], force_check: @force_check)
648+
649+
gym(
650+
scheme: 'DemoAppSwiftUI',
651+
configuration: 'Release',
652+
skip_archive: true,
653+
skip_package_ipa: true,
654+
skip_package_pkg: true,
655+
skip_codesigning: true,
656+
derived_data_path: derived_data_path,
657+
cloned_source_packages_path: source_packages_path
658+
)
659+
660+
show_detailed_sdk_size(sdk_names: sdk_names, threshold: 42)
661+
end

fastlane/Pluginfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@
55
gem 'fastlane-plugin-versioning'
66
gem 'fastlane-plugin-sonarcloud_metric_kit'
77
gem 'fastlane-plugin-create_xcframework'
8-
gem 'fastlane-plugin-stream_actions', '0.3.90'
8+
gem 'fastlane-plugin-stream_actions', '0.3.100'
9+
gem 'fastlane-plugin-xcsize', '1.1.0'

0 commit comments

Comments
 (0)