Repository navigation
[NoQA] chore(ci): measure main's Reassure baseline once per push - #100802
roryabraham merged 8 commits into
Conversation
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
collectioneur
left a comment
There was a problem hiding this comment.
It looks like the code is relatively straightforward, so we might not need all these extensive comments. Regarding the tests, a few of them seem a bit redundant since they mostly just check if you write something in the workflow or not. Maybe we can just delete reassureBaselineCache.test.ts?
d9e14eb to
6c72882
Compare
|
@abdulrahuman5196 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@WojtekBoman Would this need C+ review? |
I think @roryabraham review will be sufficient as he reviewed previous PRs related to perf tests :) |
c2bc3f7 to
d0a90df
Compare
|
@WojtekBoman in future, try to avoid force-pushing. It clobbers the "view changes since your last review" feature. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/roryabraham in version: 9.4.81-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.4.81-1 🚀
|
1 similar comment
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.4.81-1 🚀
|
cc: @roryabraham
Explanation of Change
Moves the Jest perf cache seed out of
seedCache.ymlinto its ownpush: mainworkflow, and makes it cachemain's Reassure baseline (.reassure/baseline.perf) under a key containinggithub.sha. Concurrency is keyed on the sha, so a merge burst cannot cancel a run that is measuring. Producer side only: nothing restores the baseline entry yet.Fixed Issues
$ #100726
PROPOSAL:
Tests
npx bun test ./tests/tooling/jestPerfCacheKey.test.ts.jest-cachecache step acrossreassurePerformanceTests.ymlandseedJestPerfCache.ymluses one byte-identical key (4 steps, 1 key), and the seed job and the perf jobs share oneruns-onvaluenpm run test:bunand verify the whole tooling suite is green (567 pass, 0 fail)npx bun -e 'for (const f of ["seedJestPerfCache","seedCache","bunTests"]) { Bun.YAML.parse(await Bun.file(.github/workflows/${f}.yml).text()); console.log(${f}.yml OK); }'and verify all three workflows parseseedCache.ymlforseedJestPerfCacheand verify there is no match, so the seed is no longer a called job inside that workflow.github/workflows/seedJestPerfCache.ymland verify the two saved cache entries are keyed differently and guarded independently: the baseline save is guarded bysteps.lookupBaseline.outputs.cache-hit != 'true'and the transform cache save bysteps.restoreJestCache.outputs.cache-hit != 'true', while the measure runs if either missedWorkflow behaviour is only observable on
main, so after merge:Seed Jest perf cacherun for the merge commitpush, not bySeed Cache, and thatLook up this commit's baselinereports a miss on a first run for that shaMeasure the baseline,Save this commit's baseline, andSave the Jest transform cacheran::notice::lines report a baseline measurement count rather thannot measured this run, and a non-zero.jest-cachesizeReassure Performance Testsrun on a PR and verify itsReport Jest cache sizenotice is in the same ballpark as the seed's, which is the signal that the seed is still feeding the perf jobsOffline tests
N/A - CI workflow and tooling test changes only. No app code, no API calls, no Onyx operations.
QA Steps
N/A - no user-facing change. The change only affects GitHub Actions caching on the
mainbranch. PR title carries[NoQA].PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari