Skip to content

Commit 65091a3

Browse files
[CI] Implement detailed size metrics (#967)
1 parent 69d9d0a commit 65091a3

File tree

6 files changed

+56
-7
lines changed

6 files changed

+56
-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/[email protected]
@@ -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
@@ -104,6 +104,7 @@ App Thinning Size Report.txt
104104
app-thinning.plist
105105
*.dmg
106106
yeetd-normal.pkg
107+
*LinkMap.txt
107108

108109
# Stream Video Buddy
109110
video-buddy-server.log

Gemfile.lock

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,11 @@ GEM
211211
bundler
212212
fastlane
213213
pry
214-
fastlane-plugin-stream_actions (0.3.90)
214+
fastlane-plugin-stream_actions (0.3.101)
215215
xctest_list (= 1.2.1)
216216
fastlane-plugin-versioning (0.7.1)
217+
fastlane-plugin-xcsize (1.1.0)
218+
xcsize (= 1.1.0)
217219
fastlane-sirp (1.0.0)
218220
sysrandom (~> 1.0)
219221
ffi (1.17.2)
@@ -416,6 +418,8 @@ GEM
416418
rouge (~> 3.28.0)
417419
xcpretty-travis-formatter (1.0.1)
418420
xcpretty (~> 0.2, >= 0.0.7)
421+
xcsize (1.1.0)
422+
commander (>= 4.6, < 6.0)
419423
xctest_list (1.2.1)
420424

421425
PLATFORMS
@@ -429,8 +433,9 @@ DEPENDENCIES
429433
fastlane
430434
fastlane-plugin-create_xcframework
431435
fastlane-plugin-lizard
432-
fastlane-plugin-stream_actions (= 0.3.90)
436+
fastlane-plugin-stream_actions (= 0.3.101)
433437
fastlane-plugin-versioning
438+
fastlane-plugin-xcsize (= 1.1.0)
434439
json
435440
lefthook
436441
plist

StreamVideo.xcodeproj/project.pbxproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9882,6 +9882,8 @@
98829882
INFOPLIST_KEY_NSHumanReadableCopyright = "";
98839883
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
98849884
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
9885+
LD_GENERATE_MAP_FILE = YES;
9886+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
98859887
LD_RUNPATH_SEARCH_PATHS = (
98869888
"$(inherited)",
98879889
"@executable_path/Frameworks",
@@ -9946,6 +9948,8 @@
99469948
INFOPLIST_KEY_NSHumanReadableCopyright = "";
99479949
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
99489950
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
9951+
LD_GENERATE_MAP_FILE = YES;
9952+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
99499953
LD_RUNPATH_SEARCH_PATHS = (
99509954
"$(inherited)",
99519955
"@executable_path/Frameworks",
@@ -10004,6 +10008,8 @@
1000410008
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1000510009
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1000610010
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
10011+
LD_GENERATE_MAP_FILE = YES;
10012+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1000710013
LD_RUNPATH_SEARCH_PATHS = (
1000810014
"$(inherited)",
1000910015
"@executable_path/Frameworks",
@@ -10750,6 +10756,8 @@
1075010756
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1075110757
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1075210758
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
10759+
LD_GENERATE_MAP_FILE = YES;
10760+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1075310761
LD_RUNPATH_SEARCH_PATHS = (
1075410762
"$(inherited)",
1075510763
"@executable_path/Frameworks",
@@ -10792,6 +10800,8 @@
1079210800
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1079310801
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1079410802
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
10803+
LD_GENERATE_MAP_FILE = YES;
10804+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1079510805
LD_RUNPATH_SEARCH_PATHS = (
1079610806
"$(inherited)",
1079710807
"@executable_path/Frameworks",
@@ -10868,6 +10878,8 @@
1086810878
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1086910879
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1087010880
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
10881+
LD_GENERATE_MAP_FILE = YES;
10882+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1087110883
LD_RUNPATH_SEARCH_PATHS = (
1087210884
"$(inherited)",
1087310885
"@executable_path/Frameworks",
@@ -10908,6 +10920,8 @@
1090810920
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1090910921
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1091010922
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
10923+
LD_GENERATE_MAP_FILE = YES;
10924+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1091110925
LD_RUNPATH_SEARCH_PATHS = (
1091210926
"$(inherited)",
1091310927
"@executable_path/Frameworks",
@@ -10984,6 +10998,8 @@
1098410998
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1098510999
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1098611000
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
11001+
LD_GENERATE_MAP_FILE = YES;
11002+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1098711003
LD_RUNPATH_SEARCH_PATHS = (
1098811004
"$(inherited)",
1098911005
"@executable_path/Frameworks",
@@ -11024,6 +11040,8 @@
1102411040
INFOPLIST_KEY_NSHumanReadableCopyright = "";
1102511041
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
1102611042
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
11043+
LD_GENERATE_MAP_FILE = YES;
11044+
LD_MAP_FILE_PATH = "linkmaps/$(PRODUCT_NAME)-$(CURRENT_ARCH)-LinkMap.txt";
1102711045
LD_RUNPATH_SEARCH_PATHS = (
1102811046
"$(inherited)",
1102911047
"@executable_path/Frameworks",

fastlane/Fastfile

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -776,7 +776,7 @@ lane :update_img_shields_sdk_sizes do |options|
776776
)
777777
end
778778

779-
def frameworks_sizes
779+
private_lane :frameworks_sizes do
780780
root_dir = 'Build/SDKSize'
781781
archive_dir = "#{root_dir}/DemoApp.xcarchive"
782782

@@ -786,9 +786,12 @@ def frameworks_sizes
786786

787787
gym(
788788
scheme: 'DemoAppUIKit',
789+
configuration: 'Release',
789790
archive_path: archive_dir,
790791
export_method: 'ad-hoc',
791-
export_options: 'fastlane/sdk_size_export_options.plist'
792+
export_options: 'fastlane/sdk_size_export_options.plist',
793+
derived_data_path: derived_data_path,
794+
cloned_source_packages_path: source_packages_path
792795
)
793796

794797
frameworks_path = "../#{archive_dir}/Products/Applications/DemoAppUIKit.app/Frameworks"
@@ -838,3 +841,20 @@ lane :update_webrtc do |options|
838841
github_repo: github_repo
839842
)
840843
end
844+
845+
lane :size_analyze do
846+
next unless is_check_required(sources: sources_matrix[:size], force_check: @force_check)
847+
848+
gym(
849+
scheme: 'DemoAppUIKit',
850+
configuration: 'Release',
851+
skip_archive: true,
852+
skip_package_ipa: true,
853+
skip_package_pkg: true,
854+
skip_codesigning: true,
855+
derived_data_path: derived_data_path,
856+
cloned_source_packages_path: source_packages_path
857+
)
858+
859+
show_detailed_sdk_size(sdk_names: sdk_names, threshold: 42)
860+
end

fastlane/Pluginfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
gem 'fastlane-plugin-versioning'
22
gem 'fastlane-plugin-create_xcframework'
3-
gem 'fastlane-plugin-stream_actions', '0.3.90'
3+
gem 'fastlane-plugin-stream_actions', '0.3.101'
4+
gem 'fastlane-plugin-xcsize', '1.1.0'

0 commit comments

Comments
 (0)