-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
feat: GitHub-hosted runners for benchmarks #29955
Conversation
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
Builds ready [9c55124]
Page Load Metrics (1730 ± 64 ms)
Bundle size diffs
|
1 similar comment
Builds ready [9c55124]
Page Load Metrics (1730 ± 64 ms)
Bundle size diffs
|
9c55124
to
ce07be7
Compare
ce07be7
to
e5a4333
Compare
Builds ready [e5a4333]
Page Load Metrics (2151 ± 76 ms)
Bundle size diffs
|
e5a4333
to
a6f5acb
Compare
Builds ready [a6f5acb]
Page Load Metrics (1708 ± 72 ms)
Bundle size diffs
|
Could you split this into multiple PRs? A lot of these changes seem to be distinct from each other |
a6f5acb
to
c9f1e1e
Compare
c9f1e1e
to
6266945
Compare
Builds ready [6266945]
Page Load Metrics (1958 ± 284 ms)
Bundle size diffs
|
The migration to GitHub Actions is a necessary step, but before committing to self-hosted runners, we should first validate the stability of measurements across different environments.
The suggested approach is to conduct benchmark runs on GitHub-hosted runners first (ubuntu-latest) and compare them against CircleCI and self-hosted runner results. If fluctuations remain high across all environments, this method may not be suitable for a quality gate. However, the migration to GitHub Actions remains beneficial regardless. Next steps:
Would be great to see some comparison data in the PR before merging. |
As requested by @itsyoboieltr, here are benchmarks running in 4 different configurations:
Probably the most important stat here is uiStartup (btw our old system highlights load). Two additional things I see:
I'm going to run this again to see if it varies over time, and also with some other options.
|
Second run of this, numbers are pretty close to the first run
|
6266945
to
abcd5a1
Compare
Builds ready [7c6c00b]
Page Load Metrics (1679 ± 75 ms)
Bundle size diffs
|
7c6c00b
to
c888fbd
Compare
Builds ready [c888fbd]
Page Load Metrics (1692 ± 67 ms)
Bundle size diffs
|
c888fbd
to
e1404b6
Compare
Builds ready [e1404b6]
Page Load Metrics (1617 ± 52 ms)
Bundle size diffs
|
removed "Will enable this as a required job in a later PR" multiline list new github-tools hash
e1404b6
to
61028ec
Compare
Co-authored-by: Norbert Elter <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Great work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Regarding the 90 day retention period, we can monitor to see the costs and what savings we may get by switching to a lower number later on.
Builds ready [891d0a4]
Page Load Metrics (1682 ± 98 ms)
Bundle size diffs
|
Description
Major changes
Self-hosted runnerruns-on: gha-mm-scale-set-ubuntu-22.04-amd64-med
Running in the same kind of Docker container we use in CircleCIcontainer: image: cimg/node:22.13-browsers
Unlike on CircleCI, does not work without installingXvfb
Prerequisites to merging this PR
benchmarks
branch ofgithub-tools
: https://github.com/MetaMask/github-tools/blob/benchmarks/.github/actions/setup-environment/action.ymlsetup-environment@benchmarks
tosetup-environment@1d657e262aea7e3f216754febb624831527d2565
Vastly increase the number of allocated self-hosted runners(no longer needed because not using self-hosted anymore)This is just Part 1 of a larger 4-part task to make the startup time quality gate, but I think it's the hardest part
Related issues
Progresses: MetaMask/MetaMask-planning#3679