MetaMask / MetaMask/metamask-extension

Restructure CircleCI steps for MV3

Open
#23,054 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area-CI INVALID-ISSUE-TEMPLATE MV3 team-extension-platform
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

The problem

We currently run MV2 AND MV3 test on chrome and only MV2 tests on firefox. Once we ship MV3 to main no new builds of the extension will need to run the MV2 tests because we will only be shipping the MV3 code. We do have to maintain both codepaths (the MV3 feature flag) because we are not ready for Firefox MV3 yet. We have relied upon a few chrome specific APIs to get to MV3 launch readiness (offscreen document, whereas we may need to explore event pages in firefox).

Running both MV2 and MV3 tests for chrome will be wasteful to our CI billed time.

The solution

Once we ship MV3 and chrome has stopped accepted MV2 builds we can safely deprecate MV2 E2E tests on chrome. This doesn't save us much except that we can eliminate one step of the CI process

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the CircleCI configuration and locate the Chrome and Firefox MV2/MV3 test steps. Confirm the change is only appropriate once MV3 ships and Chrome no longer accepts MV2 builds; done means removing the redundant Chrome MV2 step while retaining the MV3 Chrome tests and Firefox MV2 coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.