Skip to content
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: CircleCI is now storing builds-test and builds-test-flask #20749

Merged
merged 5 commits into from
Sep 26, 2023

Conversation

HowardBraham
Copy link
Contributor

@HowardBraham HowardBraham commented Sep 6, 2023

Explanation

The intent of this PR is very similar to #20783. We want to save a little time for QA and developers, when they have to write, modify, or debug local E2E tests. The builds-test and the builds-test-flask can be downloaded from the PR instead of locally generated. It also ensures that your local E2E is running the same code as the CircleCI E2E.

The first version of this PR had to do some acrobatics with save_cache because prep-build-test-flask was not connected to jobs-publish-prerelease. But now they are connected, so this PR is now more straightforward.

Screenshots/Screencaps

Before

image

After

image

Manual Testing Steps

  • For all 4 builds:
    • builds (test): chrome, firefox
    • builds (test-flask): chrome, firefox
  1. Download them from the latest metamaskbot links on this PR
  2. Open their manifest.json files to confirm that they have
    "description": "testing build from git id: xxxx",
    and "name": "MetaMask Main lavamoat snow", or "name": "MetaMask Flask lavamoat snow",
  3. Try them with yarn test:e2e:single, make sure they run E2E tests properly

The QA Engineer Mike Berardi was already testing this as I was developing it.

Pre-merge author checklist

  • I've clearly explained:
    • What problem this PR is solving
    • How this problem was solved
    • How reviewers can test my changes
  • Sufficient automated test coverage has been added

Pre-merge reviewer checklist

  • Manual testing (e.g. pull and build branch, run in browser, test code being changed)
  • PR is linked to the appropriate GitHub issue
  • IF this PR fixes a bug in the release milestone, add this PR to the release milestone

If further QA is required (e.g. new feature, complex testing steps, large refactor), add the Extension QA Board label.

In this case, a QA Engineer approval will be be required.

@github-actions
Copy link
Contributor

github-actions bot commented Sep 6, 2023

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.

@metamaskbot
Copy link
Collaborator

Builds ready [12608d2]
Page Load Metrics (1554 ± 32 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint117165136126
domContentLoaded1458171115546732
load1458171215546732
domInteractive1458171115546732
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@codecov
Copy link

codecov bot commented Sep 6, 2023

Codecov Report

Patch and project coverage have no change.

Comparison is base (9f7ccfc) 68.25% compared to head (b8d9fa4) 68.25%.
Report is 1 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop   #20749   +/-   ##
========================================
  Coverage    68.25%   68.25%           
========================================
  Files         1006     1006           
  Lines        40189    40189           
  Branches     10743    10743           
========================================
  Hits         27429    27429           
  Misses       12760    12760           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@plasmacorral
Copy link
Contributor

plasmacorral commented Sep 6, 2023

Able to run individual e2e locally with Firefox v117 on Mac Ventura 13.5.1

Chrome is producing a version error:

Current browser version is 116.0.5845.140 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 114

Both links for builds (test-flask): do not initiate a download and instead render a page with {"message":"not found"}

@metamaskbot
Copy link
Collaborator

Builds ready [12608d2]
Page Load Metrics (1607 ± 49 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint109175132168
domContentLoaded14491837160610149
load14491838160710249
domInteractive14491837160610149
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@plasmacorral
Copy link
Contributor

plasmacorral commented Sep 7, 2023

Still getting this:

Both links for builds (test-flask): do not initiate a download and instead render a page with {"message":"not found"}

when trying to download test flask builds from #20749 (comment)

@HowardBraham HowardBraham force-pushed the feat/circleci-test-builds branch 2 times, most recently from a00dbbe to 518d4f6 Compare September 12, 2023 21:32
@metamaskbot
Copy link
Collaborator

Builds ready [518d4f6]
Page Load Metrics (1776 ± 77 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint1151971412010
domContentLoaded15132022177616177
load15142022177616177
domInteractive15132022177616177
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@metamaskbot
Copy link
Collaborator

Builds ready [518d4f6]
Page Load Metrics (1776 ± 77 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint1151971412010
domContentLoaded15132022177616177
load15142022177616177
domInteractive15132022177616177
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@HowardBraham HowardBraham force-pushed the feat/circleci-test-builds branch from 518d4f6 to 0f6e6e6 Compare September 13, 2023 03:45
@metamaskbot
Copy link
Collaborator

Builds ready [0f6e6e6]
Page Load Metrics (1656 ± 85 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint116182142178
domContentLoaded14532126165617685
load14532127165617685
domInteractive14522126165617685
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@metamaskbot
Copy link
Collaborator

Builds ready [0f6e6e6]
Page Load Metrics (1610 ± 61 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint118177142178
domContentLoaded14651945161012861
load14651946161012861
domInteractive14651945161012861
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@plasmacorral
Copy link
Contributor

Looks good, the missing builds are now present in the latest #20749 (comment)

@HowardBraham HowardBraham changed the title feat: CircleCI is now storing test builds and test-flask builds feat: CircleCI is now storing builds-test and builds-test-flask Sep 14, 2023
@HowardBraham HowardBraham force-pushed the feat/circleci-test-builds branch from 0f6e6e6 to 11ec327 Compare September 14, 2023 04:44
@HowardBraham HowardBraham marked this pull request as ready for review September 14, 2023 04:54
@HowardBraham HowardBraham force-pushed the feat/circleci-test-builds branch from 11ec327 to 64ac3be Compare September 14, 2023 08:00
@HowardBraham HowardBraham marked this pull request as draft September 14, 2023 08:34
@metamaskbot
Copy link
Collaborator

Builds ready [4b496e5]
Page Load Metrics (1405 ± 26 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint105159124136
domContentLoaded1311152514055326
load1312152514055326
domInteractive1311152514055326
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@HowardBraham HowardBraham marked this pull request as ready for review September 14, 2023 09:30
@brad-decker
Copy link
Contributor

@HowardBraham I think i'm not understanding the benefit/reason for storing the test builds? is it just to make them available for pulling for testing locally when the PR passes? Sorry if I'm being dense here.

@HowardBraham
Copy link
Contributor Author

@HowardBraham I think i'm not understanding the benefit/reason for storing the test builds? is it just to make them available for pulling for testing locally when the PR passes? Sorry if I'm being dense here.

@brad-decker The benefit is to save a little time for QA and developers, when they have to write, modify, or debug local E2E tests. The builds-test and the builds-test-flask can be downloaded from the PR instead of locally generated. It also ensures that your local E2E is running the same code as the CircleCI E2E.

However, I think that extra fanciness I did with save_cache may no longer be necessary? Because now all-tests-pass requires test-e2e-chrome-snaps-flask and test-e2e-firefox-snaps-flask

@HowardBraham HowardBraham force-pushed the feat/circleci-test-builds branch from 4b496e5 to b8d9fa4 Compare September 21, 2023 05:40
@metamaskbot
Copy link
Collaborator

Builds ready [b8d9fa4]
Page Load Metrics (1602 ± 39 ms)
PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)
ChromeHomefirstPaint119161137126
domContentLoaded1417181816018239
load1417181816028239
domInteractive1416181716018239
Bundle size diffs
  • background: 0 Bytes (0.00%)
  • ui: 0 Bytes (0.00%)
  • common: 0 Bytes (0.00%)

@HowardBraham HowardBraham added the needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) label Sep 24, 2023
Copy link
Contributor

@plasmacorral plasmacorral left a comment

Choose a reason for hiding this comment

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

Lets update the PR description details to reflect the updated approach now that save_cache is no longer included.

There are multiple possible solutions to this, but the one I chose was:

  • save_cache:
    key: builds-test-flask-{{ .Environment.CIRCLE_SHA1 }}
    paths:
    - builds-test-flask

@plasmacorral plasmacorral merged commit adf47c2 into develop Sep 26, 2023
10 checks passed
@plasmacorral plasmacorral deleted the feat/circleci-test-builds branch September 26, 2023 17:42
@github-actions github-actions bot locked and limited conversation to collaborators Sep 26, 2023
@github-actions github-actions bot removed the needs-dev-review PR needs reviews from other engineers (in order to receive required approvals) label Sep 26, 2023
@metamaskbot metamaskbot added the release-11.3.0 Issue or pull request that will be included in release 11.3.0 label Sep 26, 2023
@HowardBraham HowardBraham added the contributor experience An issue that impacts, or planned improvement to, the contributor experience. label Oct 29, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
contributor experience An issue that impacts, or planned improvement to, the contributor experience. QA Passed release-11.3.0 Issue or pull request that will be included in release 11.3.0 team-accounts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants