Skip to content

Refactor posting comment after testBuild action#13833

Merged
mountiny merged 16 commits into
Expensify:mainfrom
staszekscp:ci/refactor-posting-comment
Jan 18, 2023
Merged

Refactor posting comment after testBuild action#13833
mountiny merged 16 commits into
Expensify:mainfrom
staszekscp:ci/refactor-posting-comment

Conversation

@staszekscp

Copy link
Copy Markdown
Contributor

Details

This PR adds a JS action to post comment after testBuild workflow even if the build fails. It includes changes from #13726. An important thing to mention is that it could not be properly tested locally, because it needs multiple secrets to run correctly.

Fixed Issues

#13784

Tests

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • I verified that if a function's arguments changed that all usages have also been updated correctly
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android

@staszekscp staszekscp requested a review from a team as a code owner December 27, 2022 11:19
@melvin-bot melvin-bot Bot requested review from francoisl and removed request for a team December 27, 2022 11:19
@melvin-bot

melvin-bot Bot commented Dec 27, 2022

Copy link
Copy Markdown

@francoisl 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]


const androidQRCode = androidSuccess
? `![Android](https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${androidLink})`
: "The code can't be generated, because the android build failed";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Not a blocker) To make it super clear, I'd have specified "The QR code can't [...]"

Comment on lines +12 to +17
const androidLink = androidSuccess
? core.getInput('ANDROID_LINK')
: '❌ FAILED ❌';
const desktopLink = desktopSuccess
? core.getInput('DESKTOP_LINK')
: '❌ FAILED ❌';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use the same style every where for consistency. It's still easy to read on one line, IMO, but feel free to change iOSLink and webLink on different lines if you prefer instead.

Suggested change
const androidLink = androidSuccess
? core.getInput('ANDROID_LINK')
: '❌ FAILED ❌';
const desktopLink = desktopSuccess
? core.getInput('DESKTOP_LINK')
: '❌ FAILED ❌';
const androidLink = androidSuccess ? core.getInput('ANDROID_LINK') : '❌ FAILED ❌';
const desktopLink = desktopSuccess ? core.getInput('DESKTOP_LINK') : '❌ FAILED ❌';

Comment thread .github/workflows/testBuild.yml Outdated
runs-on: ubuntu-latest
needs: validateActor
if: ${{ fromJSON(needs.validateActor.outputs.IS_TEAM_MEMBER) }}
if: ${{ needs.validateActor.outputs.READY_TO_BUILD == 'true' }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, why not use fromJSON here?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call @francoisl, using fromJSON is our preferred style

@francoisl

Copy link
Copy Markdown
Contributor

Initial review done, /cc @AndrewGable for familiarity.

@@ -0,0 +1,70 @@
const core = require('@actions/core');

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be great to see some automated tests created for this JS action, to give us some additional confidence as reviewers, but also more importantly to make it easier to adjust the comment or code in the future.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will take care of that next week, it was very busy time and I was not able to pick it up...

Comment thread .github/workflows/testBuild.yml Outdated
id: set_var
- name: Read JSONs with android paths
id: get_android_path
if: ${{ needs.android.result == 'success'}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if: ${{ needs.android.result == 'success'}}
if: ${{ needs.android.result == 'success' }}

Comment thread .github/workflows/testBuild.yml Outdated

- name: Read JSONs with iOS paths
id: get_ios_path
if: ${{ needs.ios.result == 'success'}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if: ${{ needs.ios.result == 'success'}}
if: ${{ needs.ios.result == 'success' }}

Comment thread .github/workflows/testBuild.yml Outdated
WEB: ${{ needs.web.result }}
ANDROID_LINK: ${{fromJson(steps.get_android_path.outputs.android_paths).html_path}}
DESKTOP_LINK: "https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/$PULL_REQUEST_NUMBER/NewExpensify.dmg"
IOS_LINK: ${{fromJson(steps.get_ios_path.outputs.ios_paths).html_path}}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
IOS_LINK: ${{fromJson(steps.get_ios_path.outputs.ios_paths).html_path}}
IOS_LINK: ${{ fromJson(steps.get_ios_path.outputs.ios_paths).html_path }}

Comment thread .github/workflows/testBuild.yml Outdated
if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }}
uses: Expensify/App/.github/actions/javascript/postTestBuildComment@main
with:
PR_NUMBER: $PULL_REQUEST_NUMBER

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NAB but I think it's a bit clearer to explicitly reference the env context so it's more clear where this variable comes from:

Suggested change
PR_NUMBER: $PULL_REQUEST_NUMBER
PR_NUMBER: ${{ env.PULL_REQUEST_NUMBER }}

@github-actions

github-actions Bot commented Jan 10, 2023

Copy link
Copy Markdown
Contributor

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

Comment thread .github/actions/javascript/postTestBuildComment/action.yml Outdated
Comment thread tests/unit/postTestBuildComment.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting pattern I haven't seen before. I'm not strongly opposed because this looks like a pretty clean approach. It would be nice to have some guidance for when we should use these "partial mocks". Also trying to understand what the alternative would look like. Would it be something like this?

mockGetInput.mockImplementation((input) => {
    switch(input) {
        case 'PR_NUMBER':
            return 'success';
        case 'IOS':
            return 'success';
        ...
        ...
        default:
            throw new Error(`No value for ${input}`);
    }
})

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIK that is the alternative.

Partial mock is useful when we expect method to be invoked several times in one test with different parameters and do not want to rely of order of those executions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that this is straightforward enough to read that I won't push back on using when here

Comment thread tests/unit/postTestBuildComment.js Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NAB but maybe a multiline template string would be more readable

Comment thread .github/actions/javascript/postTestBuildComment/postTestBuildComment.js Outdated
@staszekscp staszekscp force-pushed the ci/refactor-posting-comment branch from 6ae923b to d3aef8a Compare January 12, 2023 10:49
@mczernek

Copy link
Copy Markdown
Contributor

I have read the CLA Document and I hereby sign the CLA

@mountiny

mountiny commented Jan 17, 2023

Copy link
Copy Markdown
Contributor

Reviewer Checklist

No screenshots provided, this is changing only Github actions

  • I have verified the author checklist is complete (all boxes are checked off).
  • I verified the correct issue is linked in the ### Fixed Issues section above
  • I verified testing steps are clear and they cover the changes made in this PR
    • I verified the steps for local testing are in the Tests section
    • I verified the steps for Staging and/or Production testing are in the QA steps section
    • I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
  • I checked that screenshots or videos are included for tests on all platforms
  • I included screenshots or videos for tests on all platforms
  • I verified tests pass on all platforms & I tested again on:
    • Android / native
    • Android / Chrome
    • iOS / native
    • iOS / Safari
    • MacOS / Chrome / Safari
    • MacOS / Desktop
  • If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
  • I verified proper code patterns were followed (see Reviewing the code)
    • I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
    • I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
    • I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
    • I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
    • I verified the JSDocs style guidelines (in STYLE.md) were followed
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I verified that this PR follows the guidelines as stated in the Review Guidelines
  • I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
  • I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
  • I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
  • If a new component is created I verified that:
    • A similar component doesn't exist in the codebase
    • All props are defined accurately and each prop has a /** comment above it */
    • The file is named correctly
    • The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
    • The only data being stored in the state is data necessary for rendering and nothing else
    • For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
    • Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
    • All JSX used for rendering exists in the render method
    • The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions
  • If any new file was added I verified that:
    • The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
  • I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android

@mountiny

Copy link
Copy Markdown
Contributor

@staszekscp Seems like the Validate Github actions is failling https://github.com/Expensify/App/actions/runs/3901654051/jobs/6672309108

Error: Diff found when Github Actions were rebuilt. Did you forget to run `npm run gh-actions-build` after a clean install (`rm -rf node_modules && npm i`)? Do you need to merge main?

Can you confirm that is fine?

@mountiny mountiny left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@staszekscp Left couple of comments!

Comment thread .github/actions/javascript/postTestBuildComment/action.yml Outdated
Comment thread .github/actions/javascript/postTestBuildComment/postTestBuildComment.js Outdated
Comment thread .github/actions/javascript/postTestBuildComment/postTestBuildComment.js Outdated
Comment thread .github/actions/javascript/postTestBuildComment/postTestBuildComment.js Outdated
Co-authored-by: Vit Horacek <36083550+mountiny@users.noreply.github.com>
mountiny
mountiny previously approved these changes Jan 17, 2023

@mountiny mountiny left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @mczernek Just gonna wait a bit for Rory, otherwise I would merge

@francoisl would you like to review?

@mczernek mczernek force-pushed the ci/refactor-posting-comment branch from ac61d38 to 042bb0a Compare January 17, 2023 15:56
@roryabraham

roryabraham commented Jan 17, 2023

Copy link
Copy Markdown
Contributor

@mczernek Sorry to have been a bottleneck here. We have some tests failing on main that have since been fixed. Can you please:

  1. merge main into this branch
  2. Run npm run gh-actions-build and commit the diff

Thanks!

roryabraham
roryabraham previously approved these changes Jan 17, 2023

@roryabraham roryabraham left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No other major concerns from me except the ones listed above that are needed to get this PR in a mergable state. Approving so that once the above is done this PR can proceed without me.

AndrewGable
AndrewGable previously approved these changes Jan 17, 2023
francoisl
francoisl previously approved these changes Jan 17, 2023
* @returns {String}
*/
function getTestBuildMessage() {
console.log('Input for android', core.getInput('ANDROID', {required: true}));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Not a blocker) - I'm curious why we only log android here and not the other platforms

@francoisl

francoisl commented Jan 17, 2023

Copy link
Copy Markdown
Contributor

@mountiny feel free to merge whenever you're ready (and #13833 (comment) is done) since you also did the checklist.

@mczernek mczernek dismissed stale reviews from francoisl, AndrewGable, and roryabraham via 4ee57b7 January 18, 2023 12:13

@mountiny mountiny left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@staszekscp @mczernek Thank you guys for seeing this through!

@mountiny mountiny merged commit 8e76903 into Expensify:main Jan 18, 2023
@OSBotify

Copy link
Copy Markdown
Contributor

✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

@github-actions

Copy link
Copy Markdown
Contributor

Performance Comparison Report 📊

Significant Changes To Duration

There are no entries

Meaningless Changes To Duration

Show entries
Name Duration
App start TTI 679.659 ms → 693.677 ms (+14.017 ms, +2.1%)
App start nativeLaunch 19.871 ms → 20.323 ms (+0.452 ms, +2.3%)
App start regularAppStart 0.015 ms → 0.015 ms (+0.001 ms, +3.5%)
App start runJsBundle 193.000 ms → 191.906 ms (-1.094 ms, -0.6%)
Open Search Page TTI 605.898 ms → 600.756 ms (-5.142 ms, -0.8%)
Show details
Name Duration
App start TTI Baseline
Mean: 679.659 ms
Stdev: 34.778 ms (5.1%)
Runs: 626.3138390001841 636.4720499999821 639.8471780000255 642.1436919998378 643.3421609997749 644.2952560000122 644.5931939999573 647.6737000001594 648.1437920001335 655.0511790001765 657.3528660000302 661.7556759999134 662.3612350001931 662.6119349999353 666.2504500001669 669.1967230001464 669.5967049999163 674.680046999827 681.3719509998336 682.3649729997851 685.3330660001375 706.7881260002032 707.4665990001522 709.5025709997863 711.3253580001183 713.6709770001471 717.6527689998038 720.8487359997816 727.0180560001172 740.4650590000674 741.3923689997755 752.2137870001607

Current
Mean: 693.677 ms
Stdev: 30.525 ms (4.4%)
Runs: 645.6320020002313 655.5765379997902 663.4701970000751 663.6052600000985 664.9704280002043 665.4205109998584 665.7794650001451 669.7856100001372 673.8777830000035 673.9288880000822 675.817942999769 677.9099380001426 680.8039079997689 683.3681660001166 684.3712450000457 685.9863249999471 686.5648570000194 688.048148999922 691.8137389998883 693.4693640000187 694.1629309998825 694.3446470000781 702.3678370001726 703.2517090002075 713.7517300001346 716.4949460001662 723.5426790001802 739.3279900001362 743.060204999987 751.9067839998752 760.1484770001844 765.0887159998529
App start nativeLaunch Baseline
Mean: 19.871 ms
Stdev: 2.028 ms (10.2%)
Runs: 17 18 18 18 18 18 18 18 18 18 19 19 19 19 19 19 20 20 20 20 20 20 21 21 21 22 22 23 24 24 25

Current
Mean: 20.323 ms
Stdev: 2.558 ms (12.6%)
Runs: 17 18 18 18 18 18 18 18 18 18 19 19 19 19 20 20 20 20 20 20 20 21 21 22 22 23 24 25 25 26 26
App start regularAppStart Baseline
Mean: 0.015 ms
Stdev: 0.001 ms (5.3%)
Runs: 0.013346999883651733 0.013386999722570181 0.013508999720215797 0.013549999799579382 0.01399700017645955 0.014078000094741583 0.014119000174105167 0.014159999787807465 0.014281999785453081 0.01436399994418025 0.014403999783098698 0.014810999855399132 0.014933999627828598 0.014973999932408333 0.01497400039806962 0.015015000011771917 0.015217999927699566 0.01525900000706315 0.015381000004708767 0.015461999922990799 0.015463000163435936 0.015503000002354383 0.015503000002354383 0.015503000002354383 0.015583999920636415 0.01570600038394332 0.01582799991592765 0.01599099999293685

Current
Mean: 0.015 ms
Stdev: 0.001 ms (6.7%)
Runs: 0.0138349998742342 0.01399700017645955 0.014078999869525433 0.014159999787807465 0.014161000028252602 0.014241999946534634 0.014281999785453081 0.014444999862462282 0.014485999941825867 0.014485999941825867 0.014688999857753515 0.014811000321060419 0.014932999853044748 0.01497400039806962 0.015054999850690365 0.015218000393360853 0.015300000086426735 0.015339999925345182 0.015381000004708767 0.015422000084072351 0.015461999922990799 0.015503000002354383 0.015746999997645617 0.01599099999293685 0.01607300015166402 0.016276000067591667 0.016316999681293964 0.0166830001398921 0.016764000058174133 0.016845999751240015 0.01688600005581975 0.01822900027036667
App start runJsBundle Baseline
Mean: 193.000 ms
Stdev: 22.308 ms (11.6%)
Runs: 166 166 167 167 168 170 171 173 174 174 177 186 186 186 188 190 190 190 193 195 197 200 200 201 208 214 216 219 227 230 233 254

Current
Mean: 191.906 ms
Stdev: 20.417 ms (10.6%)
Runs: 168 169 171 171 171 172 173 176 177 178 178 181 182 182 184 184 188 190 191 191 193 195 202 204 206 206 209 212 222 231 237 247
Open Search Page TTI Baseline
Mean: 605.898 ms
Stdev: 26.010 ms (4.3%)
Runs: 541.9707440002821 577.181762999855 577.5861820001155 577.6838379995897 577.9200849998742 578.7862960002385 579.8085129996762 586.2510990002193 586.3699139999226 587.5586350001395 588.1125899995677 588.5255529996939 600.5710860001855 600.643798999954 600.90625 603.578288000077 605.2495519998483 606.4084479999729 607.1968179997057 611.1663420000114 612.5606689997949 614.3107910002582 614.562784999609 618.1581220002845 618.3819989999756 628.8535159998573 632.9354250002652 635.6680910000578 635.72005299991 636.5672200000845 644.8717040000483 652.5937509997748 665.9744470003061

Current
Mean: 600.756 ms
Stdev: 19.463 ms (3.2%)
Runs: 568.8588050003164 573.641764999833 577.7397459996864 579.09375 579.3667000001296 581.8767099999823 583.7386069996282 584.3461099998094 585.2836920004338 586.6527510005981 588.0223390003666 588.1930340006948 591.6149900001474 593.6233729999512 597.6455080001615 600.8024909999222 601.4097910001874 601.7107339994982 602.4335940005258 602.8441169997677 606.8788650003262 608.6496590003371 608.7846269998699 609.0737310000695 611.9952389998361 620.4274900001474 620.8409020002 621.4284669999033 624.7742110001855 632.0200199997053 643.8780120001175 646.5341389998794

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by @mountiny in version: 1.2.56-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.2.56-0 🚀

platform result
🤖 android 🤖 success ✅
🖥 desktop 🖥 success ✅
🍎 iOS 🍎 success ✅
🕸 web 🕸 success ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants