feat(scripts-bundle-size-auditor): refactor test-bundles app into a generic CLI tool that enables faster CI #28231
Merged
Hotell merged 22 commits intoJun 26, 2023
Conversation
Hotell
force-pushed
the
hotell/ci/fix-size-auditor-pipelines-v3
branch
from
June 15, 2023 16:22
41f2b63 to
852d3cf
Compare
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit d5f2cdb:
|
Collaborator
📊 Bundle size reportUnchanged fixtures
|
Collaborator
Perf Analysis (
|
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| AccordionMinimalPerf.default | 86 | 78 | 1.1:1 |
| ButtonSlotsPerf.default | 325 | 300 | 1.08:1 |
| PortalMinimalPerf.default | 88 | 82 | 1.07:1 |
| SkeletonMinimalPerf.default | 208 | 195 | 1.07:1 |
| AnimationMinimalPerf.default | 306 | 290 | 1.06:1 |
| HeaderMinimalPerf.default | 214 | 202 | 1.06:1 |
| ChatWithPopoverPerf.default | 196 | 186 | 1.05:1 |
| SegmentMinimalPerf.default | 201 | 191 | 1.05:1 |
| AvatarMinimalPerf.default | 111 | 107 | 1.04:1 |
| ButtonMinimalPerf.default | 94 | 90 | 1.04:1 |
| CarouselMinimalPerf.default | 274 | 264 | 1.04:1 |
| DialogMinimalPerf.default | 461 | 445 | 1.04:1 |
| GridMinimalPerf.default | 194 | 186 | 1.04:1 |
| InputMinimalPerf.default | 538 | 519 | 1.04:1 |
| ListNestedPerf.default | 329 | 315 | 1.04:1 |
| MenuButtonMinimalPerf.default | 988 | 951 | 1.04:1 |
| ProviderMinimalPerf.default | 207 | 199 | 1.04:1 |
| StatusMinimalPerf.default | 398 | 384 | 1.04:1 |
| CardMinimalPerf.default | 312 | 304 | 1.03:1 |
| ChatDuplicateMessagesPerf.default | 158 | 154 | 1.03:1 |
| PopupMinimalPerf.default | 360 | 348 | 1.03:1 |
| SliderMinimalPerf.default | 758 | 739 | 1.03:1 |
| ToolbarMinimalPerf.default | 539 | 525 | 1.03:1 |
| AttachmentMinimalPerf.default | 86 | 84 | 1.02:1 |
| ProviderMergeThemesPerf.default | 674 | 658 | 1.02:1 |
| TextMinimalPerf.default | 201 | 198 | 1.02:1 |
| AttachmentSlotsPerf.default | 645 | 638 | 1.01:1 |
| BoxMinimalPerf.default | 196 | 194 | 1.01:1 |
| RosterPerf.default | 1565 | 1543 | 1.01:1 |
| SplitButtonMinimalPerf.default | 2265 | 2244 | 1.01:1 |
| ButtonOverridesMissPerf.default | 650 | 650 | 1:1 |
| ChatMinimalPerf.default | 451 | 451 | 1:1 |
| HeaderSlotsPerf.default | 466 | 466 | 1:1 |
| ImageMinimalPerf.default | 227 | 227 | 1:1 |
| ItemLayoutMinimalPerf.default | 704 | 704 | 1:1 |
| ListWith60ListItems.default | 373 | 372 | 1:1 |
| RadioGroupMinimalPerf.default | 269 | 269 | 1:1 |
| TableManyItemsPerf.default | 1121 | 1125 | 1:1 |
| TableMinimalPerf.default | 232 | 233 | 1:1 |
| TextAreaMinimalPerf.default | 285 | 284 | 1:1 |
| CustomToolbarPrototype.default | 1503 | 1501 | 1:1 |
| TreeWith60ListItems.default | 87 | 87 | 1:1 |
| AlertMinimalPerf.default | 156 | 157 | 0.99:1 |
| DatepickerMinimalPerf.default | 3858 | 3890 | 0.99:1 |
| DropdownManyItemsPerf.default | 399 | 404 | 0.99:1 |
| EmbedMinimalPerf.default | 1853 | 1864 | 0.99:1 |
| MenuMinimalPerf.default | 500 | 507 | 0.99:1 |
| RefMinimalPerf.default | 114 | 115 | 0.99:1 |
| TreeMinimalPerf.default | 483 | 487 | 0.99:1 |
| CheckboxMinimalPerf.default | 1137 | 1158 | 0.98:1 |
| DropdownMinimalPerf.default | 1429 | 1453 | 0.98:1 |
| FlexMinimalPerf.default | 156 | 159 | 0.98:1 |
| LayoutMinimalPerf.default | 204 | 208 | 0.98:1 |
| ListCommonPerf.default | 393 | 402 | 0.98:1 |
| ReactionMinimalPerf.default | 211 | 215 | 0.98:1 |
| TooltipMinimalPerf.default | 1252 | 1282 | 0.98:1 |
| DividerMinimalPerf.default | 204 | 210 | 0.97:1 |
| LabelMinimalPerf.default | 220 | 227 | 0.97:1 |
| LoaderMinimalPerf.default | 190 | 195 | 0.97:1 |
| VideoMinimalPerf.default | 420 | 431 | 0.97:1 |
| FormMinimalPerf.default | 219 | 229 | 0.96:1 |
| IconMinimalPerf.default | 387 | 402 | 0.96:1 |
| ListMinimalPerf.default | 304 | 329 | 0.92:1 |
Collaborator
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 594 | 574 | 5000 | |
| Button | mount | 297 | 303 | 5000 | |
| Field | mount | 1029 | 1010 | 5000 | |
| FluentProvider | mount | 635 | 646 | 5000 | |
| FluentProviderWithTheme | mount | 75 | 73 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 61 | 58 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 72 | 71 | 10 | |
| InfoButton | mount | 14 | 11 | 5000 | |
| MakeStyles | mount | 845 | 880 | 50000 | |
| Persona | mount | 1619 | 1597 | 5000 | |
| SpinButton | mount | 1276 | 1320 | 5000 |
Collaborator
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| BaseButton | mount | 618 | 633 | 5000 | |
| Breadcrumb | mount | 1650 | 1665 | 1000 | |
| Checkbox | mount | 1694 | 1696 | 5000 | |
| CheckboxBase | mount | 1460 | 1481 | 5000 | |
| ChoiceGroup | mount | 2964 | 2961 | 5000 | |
| ComboBox | mount | 653 | 645 | 1000 | |
| CommandBar | mount | 6113 | 6232 | 1000 | |
| ContextualMenu | mount | 11742 | 11980 | 1000 | |
| DefaultButton | mount | 728 | 771 | 5000 | |
| DetailsRow | mount | 2160 | 2198 | 5000 | |
| DetailsRowFast | mount | 2174 | 2212 | 5000 | |
| DetailsRowNoStyles | mount | 2041 | 1999 | 5000 | |
| Dialog | mount | 2727 | 2799 | 1000 | |
| DocumentCardTitle | mount | 218 | 238 | 1000 | |
| Dropdown | mount | 1968 | 2005 | 5000 | |
| FocusTrapZone | mount | 1125 | 1153 | 5000 | |
| FocusZone | mount | 1068 | 1045 | 5000 | |
| GroupedList | mount | 41270 | 41256 | 2 | |
| GroupedList | virtual-rerender | 19766 | 19628 | 2 | |
| GroupedList | virtual-rerender-with-unmount | 49889 | 50205 | 2 | |
| GroupedListV2 | mount | 235 | 216 | 2 | |
| GroupedListV2 | virtual-rerender | 206 | 198 | 2 | |
| GroupedListV2 | virtual-rerender-with-unmount | 225 | 231 | 2 | |
| IconButton | mount | 1118 | 1093 | 5000 | |
| Label | mount | 330 | 335 | 5000 | |
| Layer | mount | 2703 | 2688 | 5000 | |
| Link | mount | 391 | 387 | 5000 | |
| MenuButton | mount | 939 | 930 | 5000 | |
| MessageBar | mount | 21467 | 21449 | 5000 | |
| Nav | mount | 1947 | 1937 | 1000 | |
| OverflowSet | mount | 784 | 773 | 5000 | |
| Panel | mount | 1814 | 1742 | 1000 | |
| Persona | mount | 721 | 722 | 1000 | |
| Pivot | mount | 848 | 847 | 1000 | |
| PrimaryButton | mount | 839 | 824 | 5000 | |
| Rating | mount | 4601 | 4567 | 5000 | |
| SearchBox | mount | 916 | 885 | 5000 | |
| Shimmer | mount | 1885 | 1829 | 5000 | |
| Slider | mount | 1328 | 1322 | 5000 | |
| SpinButton | mount | 2850 | 2875 | 5000 | |
| Spinner | mount | 393 | 386 | 5000 | |
| SplitButton | mount | 1827 | 1780 | 5000 | |
| Stack | mount | 404 | 408 | 5000 | |
| StackWithIntrinsicChildren | mount | 859 | 893 | 5000 | |
| StackWithTextChildren | mount | 2620 | 2637 | 5000 | |
| SwatchColorPicker | mount | 6149 | 6074 | 5000 | |
| TagPicker | mount | 1422 | 1456 | 5000 | |
| Text | mount | 369 | 375 | 5000 | |
| TextField | mount | 940 | 939 | 5000 | |
| ThemeProvider | mount | 837 | 841 | 5000 | |
| ThemeProvider | virtual-rerender | 581 | 588 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 1265 | 1258 | 5000 | |
| Toggle | mount | 607 | 619 | 5000 | |
| buttonNative | mount | 194 | 184 | 5000 |
Collaborator
🕵 fluentuiv9 No visual regressions between this PR and main |
…-auditor as replacememnt for test-bundles app
…nd --report-path arg per package
…undle-size-auditor cli
…ake webpack config creation more straightforward
Hotell
force-pushed
the
hotell/ci/fix-size-auditor-pipelines-v3
branch
from
June 16, 2023 12:17
8c3ebb1 to
21718f4
Compare
…ed by bundle-size-auditor cli
…Config to replace need of 'packageName' which doenst provide any context on caller site
…e sizeauditor gathers metadata
Asset size changes
Baseline commit: 9b5b3f33ad05e2dce6457c72b9e5ffa352033e47 (build) |
Collaborator
🕵 FluentUI-v0 No visual regressions between this PR and main |
Hotell
commented
Jun 19, 2023
Collaborator
🕵 fluentuiv8 No visual regressions between this PR and main |
Hotell
marked this pull request as ready for review
June 20, 2023 16:38
Hotell
requested review from
a team,
JustSlone,
jurokapsiar and
tudorpopams
as code owners
June 20, 2023 16:38
JustSlone
approved these changes
Jun 21, 2023
TristanWatanabe
approved these changes
Jun 23, 2023
layershifter
approved these changes
Jun 26, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previous Behavior
v8 and v0 use size-auditor which lives in
apps/test-bundles. This cannot be easily configured nor run on CI only if particular packages have been affected, thus consuming unnecessary resources.New Behavior
bundle-size-auditor CLI
apps/test-bundlesis replaced with genereic CLI tool calledbundle-size-auditorThis tool is used within react and react-northstar packages for all bundle-size related processing which produces metadata that we sent to lightrail service for auditing capabilities.
See the tool Readme for more info
Usage:
yarn lage bundle-size-auditor --to @fluentui/reactor on CI only for affected packages
yarn lage bundle-size-auditor --since=origin/masterCI
bundle size setup for v8,v0 is simplified to one command
yarn lage bundle-size-auditor --since=origin/masterRelated Issue(s)
SizeAuditortomonosize#27933