Repository: MetaMask/metamask-extension
Pull request #29979: ci: a new prep-deps workflow with caching
Author: login: HowardBraham
Labels: name: team-extension-platform
description: Extension Platform team
name: release-12.15.0
description: Issue or pull request that will be included in release 12.15.0
name: release-12.13.1
Created: 2025-01-29T18:38:24Z | Merged: 2025-03-03T22:06:23Z

## **Description**

### Major changes
- **prep-deps**
  - There's a new workflow that parallels the CircleCI workflow.  `prep-deps` runs first and caches the result, then `prep-build-test-webpack` makes an artifact, then the benchmarks run.
  - Several of the existing workflows were changed to now depend on `prep-deps`
  - Many of the file changes are just using the new `checkout-and-setup@caching` and deleting the independent "Checkout repository" step
- ~~**vars.USE_CACHING**~~ No longer using this
  - ~~This allows us to toggle the caching feature on and off in a centralized way.  I left instructions as a comment in `main.yml` for how to toggle it.  We can discuss implementing this in a different way, but passing this variable through different workflows is actually kind of a pain (that's the first way I implemented it).  Several of the jobs are 30-60 seconds faster when this is turned on.~~
- **~~test-short-suite~~ repository-health-checks**
  - I think this could be slightly controversial, but I think it's for the better.
  - I noticed that there were 7 individual really short tests, that each ran on their own VM.  Each VM instance took about 1m30s to execute.  I combined these together into a single VM that runs all the short tests in sequence, and takes about 1m20s combined.  The `if: always()` statements make all independent tests run, even if one fails.
  - The 7 jobs were: `test-lint-shellcheck, test-lint-changelog, test-lint-lockfile, test-deps-audit, test-yarn-dedupe, test-deps-depcheck, validate-lavamoat-allow-scripts`
  - If this were running on VMs that cost money, this would be a no-brainer.  As is on GitHub runners, it doesn't really cost us any time or money.  All we can really say is 7 separate jobs burn fossil fuels for a slight bit of convenience in terms of seeing individual test failures in the GitHub PR page.

### Prerequisites to merging this PR
- ~~Depends on #29955~~ **MERGED**
- ~~Merge this `caching` branch of `github-tools`: MetaMask/github-tools#42~~ **MERGED**
- ~~Change `checkout-and-setup@caching` and `checkout-and-setup-secure@caching` to new `@hash`~~


[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/29979?quickstart=1)

## **Related issues**

Split off from: #29955

<!--
## **Manual testing steps**
## **Screenshots/Recordings**
### **Before**
### **After**
## **Pre-merge author checklist**
## **Pre-merge reviewer checklist**
-->


Diff:
diff --git a/.github/workflows/add-release-label.yml b/.github/workflows/add-release-label.yml
index 53f73c730696..91a3ef8d7e32 100644
--- a/.github/workflows/add-release-label.yml
+++ b/.github/workflows/add-release-label.yml
@@ -12,14 +12,12 @@ jobs:
     runs-on: ubuntu-latest
     if: github.event.pull_request.merged == true
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
         with:
+          is-high-risk-environment: false
           fetch-depth: 0 # This is needed to checkout all branches
 
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
       - name: Get the next semver version
         id: get-next-semver-version
         env:
diff --git a/.github/workflows/build-beta.yml b/.github/workflows/build-beta.yml
index c39228d30a69..e0815e529161 100644
--- a/.github/workflows/build-beta.yml
+++ b/.github/workflows/build-beta.yml
@@ -40,9 +40,12 @@ jobs:
               echo "NEEDS_BETA_BUILD=false" >> "$GITHUB_OUTPUT"
           fi
 
-      - name: Setup environment
+      - name: Checkout and setup high risk environment
         if: ${{ steps.needs-beta-build.outputs.NEEDS_BETA_BUILD == 'true' }}
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: true
+          ref: ${{ github.event.pull_request.head.sha || github.sha }}
 
       - name: Run beta build
         if: ${{ steps.needs-beta-build.outputs.NEEDS_BETA_BUILD == 'true' }}
diff --git a/.github/workflows/build-storybook.yml b/.github/workflows/build-storybook.yml
index 56ae72f4f02c..2e97506a2de3 100644
--- a/.github/workflows/build-storybook.yml
+++ b/.github/workflows/build-storybook.yml
@@ -11,11 +11,10 @@ jobs:
     name: Build storybook
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup high risk environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: true
 
       - name: Build storybook
         run: yarn storybook:build
diff --git a/.github/workflows/check-attributions.yml b/.github/workflows/check-attributions.yml
index af9bd7e1b886..d5acdd029cca 100644
--- a/.github/workflows/check-attributions.yml
+++ b/.github/workflows/check-attributions.yml
@@ -8,11 +8,10 @@ jobs:
   check-attributions:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Check attributions changes
         run: yarn attributions:check
diff --git a/.github/workflows/check-pr-labels.yml b/.github/workflows/check-pr-labels.yml
index e564e0543aad..301ad1863d1b 100644
--- a/.github/workflows/check-pr-labels.yml
+++ b/.github/workflows/check-pr-labels.yml
@@ -17,11 +17,10 @@ jobs:
       pull-requests: read
 
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Check PR has required labels
         env:
diff --git a/.github/workflows/check-template-and-add-labels.yml b/.github/workflows/check-template-and-add-labels.yml
index 232b5e5d8a63..d26a70de4c73 100644
--- a/.github/workflows/check-template-and-add-labels.yml
+++ b/.github/workflows/check-template-and-add-labels.yml
@@ -10,11 +10,10 @@ jobs:
   check-template-and-add-labels:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Check template and add labels
         id: check-template-and-add-labels
diff --git a/.github/workflows/close-bug-report.yml b/.github/workflows/close-bug-report.yml
index 328c5b4429b6..b8a46bbc339e 100644
--- a/.github/workflows/close-bug-report.yml
+++ b/.github/workflows/close-bug-report.yml
@@ -12,11 +12,10 @@ jobs:
     runs-on: ubuntu-latest
     if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'Version-v')
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Close release bug report issue
         env:
diff --git a/.github/workflows/create-bug-report.yml b/.github/workflows/create-bug-report.yml
index 65ff2f4ab9e5..a9f930c47cfb 100644
--- a/.github/workflows/create-bug-report.yml
+++ b/.github/workflows/create-bug-report.yml
@@ -17,13 +17,11 @@ jobs:
             echo "Not a release branch, skip next steps"
           fi
 
-      - name: Checkout repository
+      - name: Checkout and setup environment
         if: steps.extract_version.outputs.version
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        if: steps.extract_version.outputs.version
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Create bug report issue on planning repo
         if: steps.extract_version.outputs.version
diff --git a/.github/workflows/crowdin-action.yml b/.github/workflows/crowdin-action.yml
index 5600265d6f78..cd1b541b2934 100644
--- a/.github/workflows/crowdin-action.yml
+++ b/.github/workflows/crowdin-action.yml
@@ -14,7 +14,6 @@ on:
 jobs:
   synchronize-with-crowdin:
     runs-on: ubuntu-latest
-
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/fitness-functions.yml b/.github/workflows/fitness-functions.yml
index 0bb23232aaa1..e3c3cad5b43b 100644
--- a/.github/workflows/fitness-functions.yml
+++ b/.github/workflows/fitness-functions.yml
@@ -11,14 +11,12 @@ jobs:
   build:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
         with:
+          is-high-risk-environment: false
           fetch-depth: 0 # This is needed to checkout all branches
 
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
       - name: Run fitness functions
         env:
           BASE_REF: ${{ github.event.pull_request.base.ref }}
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b61f2a3a7655..43af8b4d6da1 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -15,75 +15,61 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
+          cache-node-modules: 'true'
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@1d657e262aea7e3f216754febb624831527d2565
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
   test-circular-deps:
     name: Test circular deps
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Check circular dependencies
         run: yarn circular-deps:check
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  repository-health-checks:
+    needs: prep-deps
+    uses: ./.github/workflows/repository-health-checks.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-browserify:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - run: yarn build:test
 
@@ -94,13 +80,13 @@ jobs:
           path: ./dist/
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - run: yarn webpack --test --no-lavamoat --no-cache --browser=chrome --lockdown --sentry --snow --env production
         env:
@@ -114,6 +100,7 @@ jobs:
 
   run-tests:
     name: Run tests
+    needs: prep-deps
     uses: ./.github/workflows/run-tests.yml
 
   run-benchmarks:
@@ -171,14 +158,9 @@ jobs:
     runs-on: ubuntu-latest
     needs:
       - lint-workflows
-      - test-lint-shellcheck
       - test-lint
-      - test-lint-changelog
-      - test-lint-lockfile
-      - test-yarn-dedupe
-      - test-deps-depcheck
+      - repository-health-checks
       - test-storybook
-      - validate-lavamoat-allow-scripts
       - validate-lavamoat-policy-build
       - validate-lavamoat-policy-webapp
       - run-tests
diff --git a/.github/workflows/publish-prerelease.yml b/.github/workflows/publish-prerelease.yml
index 84cee5279c6c..7d6097c1280f 100644
--- a/.github/workflows/publish-prerelease.yml
+++ b/.github/workflows/publish-prerelease.yml
@@ -11,14 +11,12 @@ jobs:
     name: Publish prerelease
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
+      - name: Checkout and setup high risk environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
         with:
+          is-high-risk-environment: true
           fetch-depth: 0 # This is needed to get merge base to calculate bundle size diff
 
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
       - name: Get merge base commit hash
         id: get-merge-base
         env:
diff --git a/.github/workflows/repository-health-checks.yml b/.github/workflows/repository-health-checks.yml
new file mode 100644
index 000000000000..08dc28d6e51e
--- /dev/null
+++ b/.github/workflows/repository-health-checks.yml
@@ -0,0 +1,72 @@
+# This suite originally ran on 7 individual VMs that each took about 1m30s to execute
+# It's now combined onto a single VM that takes about 1m20s
+# The `if: always()` statements make all independent tests run, even if one fails.
+name: Repository health checks
+
+on:
+  workflow_call:
+
+jobs:
+  repository-health-checks:
+    name: Repository health checks
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
+
+      # test-lint-shellcheck
+      - name: ShellCheck Lint
+        if: always()
+        run: ./development/shellcheck.sh
+
+      # test-lint-changelog
+      - name: Validate changelog
+        # For a `pull_request` event, the branch is `github.head_ref``.
+        # For a `push` event, the branch is `github.ref_name`.
+        if: ${{ !startsWith(github.head_ref || github.ref_name, 'Version-v') }}
+        run: yarn lint:changelog
+
+      - name: Validate release candidate changelog
+        # For a `pull_request` event, the branch is `github.head_ref``.
+        # For a `push` event, the branch is `github.ref_name`.
+        if: ${{ startsWith(github.head_ref || github.ref_name, 'Version-v') }}
+        run: .circleci/scripts/validate-changelog-in-rc.sh
+
+      # test-lint-lockfile
+      - name: Lint lockfile
+        if: always()
+        run: yarn lint:lockfile
+
+      - name: Check yarn resolutions
+        if: always()
+        run: yarn --check-resolutions
+
+      # test-deps-audit
+      - name: Run audit
+        if: always()
+        run: yarn audit
+
+      # test-yarn-dedupe
+      - name: Detect yarn lock deduplications
+        if: always()
+        run: yarn dedupe --check
+
+      # test-deps-depcheck
+      - name: Run depcheck
+        if: always()
+        run: yarn depcheck
+
+      # validate-lavamoat-allow-scripts
+      - name: Validate allow-scripts config
+        if: always()
+        run: yarn allow-scripts auto
+
+      - name: Check working tree
+        if: always()
+        run: |
+          if ! git diff --exit-code; then
+              echo "::error::Working tree dirty."
+              exit 1
+          fi
diff --git a/.github/workflows/run-benchmarks.yml b/.github/workflows/run-benchmarks.yml
index 5ab185ef77c8..809394b219d1 100644
--- a/.github/workflows/run-benchmarks.yml
+++ b/.github/workflows/run-benchmarks.yml
@@ -17,11 +17,10 @@ jobs:
         testType: [pageload, userActions]
     name: ${{ matrix.buildType }}-${{ matrix.testType }}
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Download artifact prep-build-test-${{ matrix.buildType }}
         uses: actions/download-artifact@v4
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index 8307bdf833fd..9472770864b9 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -18,11 +18,10 @@ jobs:
       matrix:
         shard: [1, 2, 3, 4, 5, 6]
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: test:unit:coverage
         run: yarn test:unit:coverage --shard=${{ matrix.shard }}/${{ strategy.job-total }}
@@ -39,11 +38,10 @@ jobs:
     name: Webpack tests
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: test:unit:webpack:coverage
         run: yarn test:unit:webpack:coverage
@@ -60,11 +58,10 @@ jobs:
     name: Integration tests
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: test:integration:coverage
         run: yarn test:integration:coverage
@@ -88,11 +85,10 @@ jobs:
       current-coverage: ${{ steps.get-current-coverage.outputs.CURRENT_COVERAGE }}
       stored-coverage: ${{ steps.get-stored-coverage.outputs.STORED_COVERAGE }}
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Download artifacts
         uses: actions/download-artifact@v4
diff --git a/.github/workflows/test-deps-audit.yml b/.github/workflows/test-deps-audit.yml
deleted file mode 100644
index 4001735c6ad2..000000000000
--- a/.github/workflows/test-deps-audit.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Test deps audit
-
-on:
-  workflow_call:
-
-jobs:
-  test-deps-audit:
-    name: Test deps audit
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Run audit
-        run: yarn audit
diff --git a/.github/workflows/test-deps-depcheck.yml b/.github/workflows/test-deps-depcheck.yml
deleted file mode 100644
index baf3c13f41a3..000000000000
--- a/.github/workflows/test-deps-depcheck.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Test deps depcheck
-
-on:
-  workflow_call:
-
-jobs:
-  test-deps-depcheck:
-    name: Test deps depcheck
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Run depcheck
-        run: yarn depcheck
diff --git a/.github/workflows/test-lint-changelog.yml b/.github/workflows/test-lint-changelog.yml
deleted file mode 100644
index 8f014f4c8065..000000000000
--- a/.github/workflows/test-lint-changelog.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Test lint changelog
-
-on:
-  workflow_call:
-
-jobs:
-  test-lint-changelog:
-    name: Test lint changelog
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Validate changelog
-        # For a `pull_request` event, the branch is `github.head_ref``.
-        # For a `push` event, the branch is `github.ref_name`.
-        if: ${{ !startsWith(github.head_ref || github.ref_name, 'Version-v') }}
-        run: yarn lint:changelog
-
-      - name: Validate release candidate changelog
-        # For a `pull_request` event, the branch is `github.head_ref``.
-        # For a `push` event, the branch is `github.ref_name`.
-        if: ${{ startsWith(github.head_ref || github.ref_name, 'Version-v') }}
-        run: .circleci/scripts/validate-changelog-in-rc.sh
diff --git a/.github/workflows/test-lint-lockfile.yml b/.github/workflows/test-lint-lockfile.yml
deleted file mode 100644
index 153a13c3fc3b..000000000000
--- a/.github/workflows/test-lint-lockfile.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: Test lint lockfile
-
-on:
-  workflow_call:
-
-jobs:
-  test-lint-lockfile:
-    name: Test lint lockfile
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Lint lockfile
-        run: yarn lint:lockfile
-
-      - name: Check yarn resolutions
-        run: yarn --check-resolutions
diff --git a/.github/workflows/test-lint-shellcheck.yml b/.github/workflows/test-lint-shellcheck.yml
deleted file mode 100644
index c4127902a2f4..000000000000
--- a/.github/workflows/test-lint-shellcheck.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: Test lint shellcheck
-
-on:
-  workflow_call:
-
-jobs:
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: ShellCheck Lint
-        run: ./development/shellcheck.sh
diff --git a/.github/workflows/test-lint.yml b/.github/workflows/test-lint.yml
index 205377a376c2..689627b13ef8 100644
--- a/.github/workflows/test-lint.yml
+++ b/.github/workflows/test-lint.yml
@@ -8,11 +8,10 @@ jobs:
     name: Test lint
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Lint
         run: yarn lint
diff --git a/.github/workflows/test-storybook.yml b/.github/workflows/test-storybook.yml
index 89cd695e1413..91150f68901b 100644
--- a/.github/workflows/test-storybook.yml
+++ b/.github/workflows/test-storybook.yml
@@ -8,11 +8,10 @@ jobs:
     name: Test storybook
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Install Playwright browsers
         run: yarn exec playwright install chromium
diff --git a/.github/workflows/test-yarn-dedupe.yml b/.github/workflows/test-yarn-dedupe.yml
deleted file mode 100644
index 2d9c9864bbc6..000000000000
--- a/.github/workflows/test-yarn-dedupe.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Test yarn dedupe
-
-on:
-  workflow_call:
-
-jobs:
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Detect yarn lock deduplications
-        run: yarn dedupe --check
diff --git a/.github/workflows/update-attributions.yml b/.github/workflows/update-attributions.yml
index 85ba21f468b5..41b0fc3c6102 100644
--- a/.github/workflows/update-attributions.yml
+++ b/.github/workflows/update-attributions.yml
@@ -58,8 +58,10 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           PR_NUMBER: ${{ github.event.issue.number }}
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
       - name: Get commit SHA
         id: commit-sha
         run: echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
@@ -80,8 +82,10 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           PR_NUMBER: ${{ github.event.issue.number }}
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
       - name: Generate Attributions
         run: yarn attributions:generate
       - name: Cache attributions file
diff --git a/.github/workflows/update-lavamoat-policies.yml b/.github/workflows/update-lavamoat-policies.yml
index d138733937cb..68c59a6af886 100644
--- a/.github/workflows/update-lavamoat-policies.yml
+++ b/.github/workflows/update-lavamoat-policies.yml
@@ -58,8 +58,10 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.LAVAMOAT_UPDATE_TOKEN }}
           PR_NUMBER: ${{ github.event.issue.number }}
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
       - name: Get commit SHA
         id: commit-sha
         run: echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
@@ -77,8 +79,10 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.LAVAMOAT_UPDATE_TOKEN }}
           PR_NUMBER: ${{ github.event.issue.number }}
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
       - name: Update LavaMoat build policy
         run: yarn lavamoat:build:auto
       - name: Cache build policy
@@ -106,8 +110,10 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.LAVAMOAT_UPDATE_TOKEN }}
           PR_NUMBER: ${{ github.event.issue.number }}
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
       - name: Restore build policy
         uses: actions/cache/restore@v4
         with:
diff --git a/.github/workflows/validate-lavamoat-allow-scripts.yml b/.github/workflows/validate-lavamoat-allow-scripts.yml
deleted file mode 100644
index df680b2bb5d0..000000000000
--- a/.github/workflows/validate-lavamoat-allow-scripts.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Validate lavamoat allow scripts
-
-on:
-  workflow_call:
-
-jobs:
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
-
-      - name: Validate allow-scripts config
-        run: yarn allow-scripts auto
-
-      - name: Check working tree
-        run: |
-          if ! git diff --exit-code; then
-              echo "::error::Working tree dirty."
-              exit 1
-          fi
diff --git a/.github/workflows/validate-lavamoat-policy-build.yml b/.github/workflows/validate-lavamoat-policy-build.yml
index eed9d3f471bd..b8919f2e092e 100644
--- a/.github/workflows/validate-lavamoat-policy-build.yml
+++ b/.github/workflows/validate-lavamoat-policy-build.yml
@@ -8,11 +8,10 @@ jobs:
     name: Validate lavamoat policy build
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Validate lavamoat build policy
         run: yarn lavamoat:build:auto
diff --git a/.github/workflows/validate-lavamoat-policy-webapp.yml b/.github/workflows/validate-lavamoat-policy-webapp.yml
index 2daa15f00cb9..a1565de06d82 100644
--- a/.github/workflows/validate-lavamoat-policy-webapp.yml
+++ b/.github/workflows/validate-lavamoat-policy-webapp.yml
@@ -11,11 +11,10 @@ jobs:
       matrix:
         build-type: [main, beta, flask, mmi]
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Validate lavamoat ${{ matrix.build-type }} policy
         run: yarn lavamoat:webapp:auto:ci --build-types=${{ matrix.build-type }}
diff --git a/.github/workflows/validate-page-object-usage.yml b/.github/workflows/validate-page-object-usage.yml
index c44c96067900..0c7e8ab3ab66 100644
--- a/.github/workflows/validate-page-object-usage.yml
+++ b/.github/workflows/validate-page-object-usage.yml
@@ -13,11 +13,10 @@ jobs:
   run-e2e-pom-validation:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
-      - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@1d657e262aea7e3f216754febb624831527d2565
+      - name: Checkout and setup environment
+        uses: metamask/github-tools/.github/actions/checkout-and-setup@1299bb1de0c6974ae6d0a32c7e8897fe168239ac
+        with:
+          is-high-risk-environment: false
 
       - name: Run E2E Page Object Usage Validation
         env:


Reviews:
user: login: NEllusion
body: Left one question & reviewed usage of caching from a security POV.  No concerns from our end. I'll let the others chime in with regards to reviewing the functionality


state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-30T21:39:44Z
user: login: HowardBraham
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-30T21:44:07Z
user: login: NEllusion
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-30T21:54:29Z
user: login: HowardBraham
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-30T22:27:52Z
user: login: HowardBraham
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-01-31T18:17:27Z
user: login: itsyoboieltr
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-04T18:58:48Z
user: login: itsyoboieltr
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-04T19:19:20Z
user: login: HowardBraham
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-11T07:21:40Z
user: login: NEllusion
body: Overall changes look good 👍 
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-26T20:50:36Z
user: login: hmalik88
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T01:50:51Z
user: login: HowardBraham
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T02:00:54Z
user: login: NEllusion
body: Reviewed from a security POV, LGTM!


state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T18:46:18Z
user: login: itsyoboieltr
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-03T21:19:18Z

Review comments:
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: NEllusion
body: What was the background behind choosing an env variable over harcoding?
created_at: 2025-01-30T21:35:57Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: HowardBraham
body: Pro: It's way fewer lines of code to do it this way.  Setting a variable in `main.yml` and passing it in to a bunch of workflows is harder, much less clean, and easier to accidentally mess up.

Con: You lose some control and repeatability of workflows.

I'm kind of in a divided mind myself.
created_at: 2025-01-30T21:44:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: NEllusion
body: Ah I see what you mean. Other than slower performance due to the extra yarn install, are there any issues if the settings were accidentally set out out of sync? 

I suspect most of the time we will want caching for these, and only in the odd case we may set a couple workflows to be `false`. In which case `${{ vars.USE_CACHING }}` could be seen as being synonymous to `true` (but with a var that can be flipped without going through the peer review flow).
created_at: 2025-01-30T21:54:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: HowardBraham
body: If prep-deps had `USE_CACHING` set to false, and later steps had `USE_CACHING` set to true, it would be a problem.
created_at: 2025-01-30T22:27:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: HowardBraham
body: I suppose another option is to just set all of these to `true`, and then turning it off has to happen in a PR with about 10 files, but maybe that's okay?
created_at: 2025-01-31T18:17:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Setup environment
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: 'false'
+          should-cache-save: ${{ vars.USE_CACHING }}
+          # -- If you're a repo admin, you can change vars.USE_CACHING at:
+          #    https://github.com/MetaMask/metamask-extension/settings/variables/actions
+          # -- If you're just a contributor, you can change vars.USE_CACHING by following this documentation:
+          #    https://docs.github.com/en/rest/actions/variables?apiVersion=2022-11-28#update-a-repository-variable
+
   lint-workflows:
     name: Lint workflows
-    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@benchmarks
-
-  test-lint-shellcheck:
-    name: Test lint shellcheck
-    uses: ./.github/workflows/test-lint-shellcheck.yml
+    uses: metamask/github-tools/.github/workflows/lint-workflows.yml@caching
 
   test-lint:
-    name: Test lint
+    needs: prep-deps
     uses: ./.github/workflows/test-lint.yml
 
-  test-lint-changelog:
-    name: Test lint changelog
-    uses: ./.github/workflows/test-lint-changelog.yml
-
-  test-lint-lockfile:
-    name: Test lint lockfile
-    uses: ./.github/workflows/test-lint-lockfile.yml
-
-  test-deps-audit:
-    name: Test deps audit
-    uses: ./.github/workflows/test-deps-audit.yml
-
-  test-yarn-dedupe:
-    name: Test yarn dedupe
-    uses: ./.github/workflows/test-yarn-dedupe.yml
-
-  test-deps-depcheck:
-    name: Test deps depcheck
-    uses: ./.github/workflows/test-deps-depcheck.yml
+  test-short-suite:
+    needs: prep-deps
+    uses: ./.github/workflows/test-short-suite.yml
 
   test-storybook:
     name: Test storybook
+    needs: prep-deps
     uses: ./.github/workflows/test-storybook.yml
 
-  validate-lavamoat-allow-scripts:
-    name: Validate lavamoat allow scripts
-    uses: ./.github/workflows/validate-lavamoat-allow-scripts.yml
-
   validate-lavamoat-policy-build:
-    name: Validate lavamoat policy build
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-build.yml
 
   validate-lavamoat-policy-webapp:
-    name: Validate lavamoat policy webapp
+    needs: prep-deps
     uses: ./.github/workflows/validate-lavamoat-policy-webapp.yml
 
   prep-build-test-webpack:
+    needs: prep-deps
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
+        with:
+          should-cache-restore: ${{ vars.USE_CACHING }}
path: .github/workflows/main.yml
user: login: itsyoboieltr
body: I would probably also hard-code `true`. This also allows us to 100% trust that it will be cached (or not), as someone cannot silently change it in the background without anyone knowing - it will be shown in the commit history.
created_at: 2025-02-04T18:58:48Z
author_association: CONTRIBUTOR
diff_hunk: @@ -12,14 +12,11 @@ jobs:
     runs-on: ubuntu-latest
     if: github.event.pull_request.merged == true
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
+      - name: Setup environment
path: .github/workflows/add-release-label.yml
user: login: itsyoboieltr
body: I would not merge the `Checkout repository` and `Setup environment` steps together. What if there is some occasion where you want only one? Feels like this step is doing too much at once
created_at: 2025-02-04T19:02:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -42,7 +42,9 @@ jobs:
 
       - name: Setup environment
         if: ${{ steps.needs-beta-build.outputs.NEEDS_BETA_BUILD == 'true' }}
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
path: .github/workflows/build-beta.yml
user: login: itsyoboieltr
body: I feel like setup environment has too many arguments and it's doing too much. I wonder if this could be separated to multiple smaller workflows?
created_at: 2025-02-04T19:04:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,11 +8,8 @@ jobs:
   check-attributions:
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout repository
-        uses: actions/checkout@v4
-
       - name: Setup environment
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
path: .github/workflows/check-attributions.yml
user: login: itsyoboieltr
body: we should change from `@main` (or `@caching`) to `@commithash-on-main`
created_at: 2025-02-04T19:05:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -15,62 +15,52 @@ on:
   merge_group:
 
 jobs:
+  prep-deps:
path: .github/workflows/main.yml
user: login: itsyoboieltr
body: Running `prep-deps` and making all other jobs dependent on it is a bit dangerous, especially given the limitations of gh actions we recently encountered (max 20 workflows in one file). It is very likely that in the near future (which probably means, when I get off release rotation in March) we will need to split `main.yml` into multiple smaller workflows (probably each workflow will go in its own file, or we need to batch them somehow, like the short suite), which means that they will not be able to depend on `prep-deps`. 

Also keep in mind that we need to migrate 40 more workflows. 

More context here: https://consensys.slack.com/archives/C087GPTR5HQ/p1738658608653149
created_at: 2025-02-04T19:10:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,72 @@
+# This suite originally ran on 7 individual VMs that each took about 1m30s to execute
+# It's now combined onto a single VM that takes about 1m20s
+# The `if: always()` statements make all independent tests run, even if one fails.
+name: Test short suite
+
+on:
+  workflow_call:
+
+jobs:
+  test-short-suite:
path: .github/workflows/test-short-suite.yml
user: login: itsyoboieltr
body: I like the performance gains, but it does not feel "clean" to do so many things in one workflow
created_at: 2025-02-04T19:18:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -42,7 +42,9 @@ jobs:
 
       - name: Setup environment
         if: ${{ steps.needs-beta-build.outputs.NEEDS_BETA_BUILD == 'true' }}
-        uses: metamask/github-tools/.github/actions/setup-environment@main
+        uses: metamask/github-tools/.github/actions/setup-environment@caching
path: .github/workflows/build-beta.yml
user: login: HowardBraham
body: Yeah I see what you mean.  I split this into two actions: `setup-environment` and `setup-environment-secure`.
created_at: 2025-02-11T07:21:40Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,72 @@
+# This suite originally ran on 7 individual VMs that each took about 1m30s to execute
+# It's now combined onto a single VM that takes about 1m20s
+# The `if: always()` statements make all independent tests run, even if one fails.
+name: Test short suite
+
+on:
+  workflow_call:
+
+jobs:
+  test-short-suite:
path: .github/workflows/test-short-suite.yml
user: login: hmalik88
body: ```suggestion
  repository-health-checks:
```
I know these tests are grouped together because they're short, but perhaps we could have a more descriptive name along the lines of the above?
created_at: 2025-03-03T01:50:50Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,72 @@
+# This suite originally ran on 7 individual VMs that each took about 1m30s to execute
+# It's now combined onto a single VM that takes about 1m20s
+# The `if: always()` statements make all independent tests run, even if one fails.
+name: Test short suite
+
+on:
+  workflow_call:
+
+jobs:
+  test-short-suite:
path: .github/workflows/test-short-suite.yml
user: login: HowardBraham
body: Yeah, that makes sense, done
created_at: 2025-03-03T02:00:54Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-01-29T18:38:39Z
body: **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.
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-01-29T22:29:10Z
body: <details><summary>Builds ready [1283bfe]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13041162117/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4501270#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/ui-13.html">13</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/331c3228-62d0-44e8-8258-d3fdfb8a2524/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1641 ± 69 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">1406</td><td align="right">1928</td><td align="right">1642</td><td align="right">145</td><td align="right">69</td></tr><tr><td>domContentLoaded</td><td align="right">1398</td><td align="right">1902</td><td align="right">1620</td><td align="right">139</td><td align="right">67</td></tr><tr><td>load</td><td align="right">1407</td><td align="right">1926</td><td align="right">1641</td><td align="right">144</td><td align="right">69</td></tr><tr><td>domInteractive</td><td align="right">21</td><td align="right">118</td><td align="right">38</td><td align="right">24</td><td align="right">11</td></tr><tr><td>backgroundConnect</td><td align="right">10</td><td align="right">63</td><td align="right">24</td><td align="right">15</td><td align="right">7</td></tr><tr><td>firstReactRender</td><td align="right">15</td><td align="right">101</td><td align="right">36</td><td align="right">24</td><td align="right">11</td></tr><tr><td>getState</td><td align="right">4</td><td align="right">79</td><td align="right">19</td><td align="right">21</td><td align="right">10</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">998</td><td align="right">1388</td><td align="right">1177</td><td align="right">115</td><td align="right">55</td></tr><tr><td>setupStore</td><td align="right">6</td><td align="right">63</td><td align="right">16</td><td align="right">16</td><td align="right">8</td></tr><tr><td>uiStartup</td><td align="right">1586</td><td align="right">2435</td><td align="right">1885</td><td align="right">200</td><td align="right">96</td></tr></tbody></table></details>


author_association: COLLABORATOR
user: login: NEllusion
created_at: 2025-01-30T21:42:34Z
body: > Change setup-environment@caching back to setup-environment@main

(Not blocking) Are there plans to version changes? While for now pointing directly to the main branch allows for immediate updates, it can result in challenges down the road if a breaking change is introduced. Could be handy to have things set up now to save time in the long run. 

author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-02-12T03:09:19Z
body: <details><summary>Builds ready [b6e58b6]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13276793505/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4537399#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/80e702b0-0faa-4692-8cf2-cab8d56dd1bd/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1643 ± 73 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">244</td><td align="right">1960</td><td align="right">1586</td><td align="right">341</td><td align="right">164</td></tr><tr><td>domContentLoaded</td><td align="right">1402</td><td align="right">1937</td><td align="right">1624</td><td align="right">156</td><td align="right">75</td></tr><tr><td>load</td><td align="right">1440</td><td align="right">1962</td><td align="right">1643</td><td align="right">153</td><td align="right">73</td></tr><tr><td>domInteractive</td><td align="right">18</td><td align="right">100</td><td align="right">39</td><td align="right">22</td><td align="right">10</td></tr><tr><td>backgroundConnect</td><td align="right">7</td><td align="right">66</td><td align="right">22</td><td align="right">17</td><td align="right">8</td></tr><tr><td>firstReactRender</td><td align="right">15</td><td align="right">92</td><td align="right">37</td><td align="right">25</td><td align="right">12</td></tr><tr><td>getState</td><td align="right">3</td><td align="right">51</td><td align="right">11</td><td align="right">13</td><td align="right">6</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">0</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">974</td><td align="right">1426</td><td align="right">1167</td><td align="right">117</td><td align="right">56</td></tr><tr><td>setupStore</td><td align="right">6</td><td align="right">55</td><td align="right">14</td><td align="right">14</td><td align="right">7</td></tr><tr><td>uiStartup</td><td align="right">1640</td><td align="right">2551</td><td align="right">1890</td><td align="right">209</td><td align="right">100</td></tr></tbody></table></details>


author_association: COLLABORATOR
user: login: metamaskbot
created_at: 2025-02-19T18:26:23Z
body: <details><summary>Builds ready [1fa54b9]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13419054879/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4564180#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/a3f9b40c-af27-4cb5-bc8f-28280943d00c/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1729 ± 53 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">1566</td><td align="right">1957</td><td align="right">1740</td><td align="right">114</td><td align="right">55</td></tr><tr><td>domContentLoaded</td><td align="right">1552</td><td align="right">1898</td><td align="right">1703</td><td align="right">103</td><td align="right">49</td></tr><tr><td>load</td><td align="right">1571</td><td align="right">1965</td><td align="right">1729</td><td align="right">111</td><td align="right">53</td></tr><tr><td>domInteractive</td><td align="right">25</td><td align="right">118</td><td align="right">42</td><td align="right">24</td><td align="right">11</td></tr><tr><td>backgroundConnect</td><td align="right">10</td><td align="right">81</td><td align="right">28</td><td align="right">20</td><td align="right">10</td></tr><tr><td>firstReactRender</td><td align="right">14</td><td align="right">81</td><td align="right">30</td><td align="right">23</td><td align="right">11</td></tr><tr><td>getState</td><td align="right">5</td><td align="right">54</td><td align="right">12</td><td align="right">13</td><td align="right">6</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">1095</td><td align="right">1398</td><td align="right">1234</td><td align="right">89</td><td align="right">43</td></tr><tr><td>setupStore</td><td align="right">7</td><td align="right">67</td><td align="right">19</td><td align="right">20</td><td align="right">10</td></tr><tr><td>uiStartup</td><td align="right">1803</td><td align="right">2704</td><td align="right">2019</td><td align="right">190</td><td align="right">91</td></tr></tbody></table></details>

<details><summary>Bundle size diffs</summary><ul><li>background: 0 Bytes (0.00%)</li>
<li>ui: 0 Bytes (0.00%)</li>
<li>common: 0 Bytes (0.00%)</li></ul></details>


author_association: COLLABORATOR
user: login: metamaskbot
created_at: 2025-02-26T07:49:19Z
body: <details><summary>Builds ready [5973f94]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13538466202/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4585921#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/common-14.html">14</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/c4315d0a-983b-4854-8fd3-b486ad782f46/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1899 ± 62 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">1615</td><td align="right">2125</td><td align="right">1899</td><td align="right">125</td><td align="right">60</td></tr><tr><td>domContentLoaded</td><td align="right">1600</td><td align="right">2057</td><td align="right">1859</td><td align="right">118</td><td align="right">57</td></tr><tr><td>load</td><td align="right">1609</td><td align="right">2130</td><td align="right">1899</td><td align="right">128</td><td align="right">62</td></tr><tr><td>domInteractive</td><td align="right">29</td><td align="right">104</td><td align="right">45</td><td align="right">21</td><td align="right">10</td></tr><tr><td>backgroundConnect</td><td align="right">10</td><td align="right">92</td><td align="right">39</td><td align="right">25</td><td align="right">12</td></tr><tr><td>firstReactRender</td><td align="right">16</td><td align="right">73</td><td align="right">32</td><td align="right">19</td><td align="right">9</td></tr><tr><td>getState</td><td align="right">6</td><td align="right">68</td><td align="right">21</td><td align="right">19</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">1125</td><td align="right">1604</td><td align="right">1388</td><td align="right">119</td><td align="right">57</td></tr><tr><td>setupStore</td><td align="right">8</td><td align="right">65</td><td align="right">15</td><td align="right">15</td><td align="right">7</td></tr><tr><td>uiStartup</td><td align="right">1834</td><td align="right">2443</td><td align="right">2162</td><td align="right">158</td><td align="right">76</td></tr></tbody></table></details>

<details><summary>Bundle size diffs</summary><ul><li>background: 0 Bytes (0.00%)</li>
<li>ui: 0 Bytes (0.00%)</li>
<li>common: 0 Bytes (0.00%)</li></ul></details>


author_association: COLLABORATOR
user: login: HowardBraham
created_at: 2025-02-26T07:54:43Z
body: @NicholasEllul @itsyoboieltr @Gudahtt
The dependent PR MetaMask/github-tools#42 has been updated, and now this PR needs another look from you guys
author_association: CONTRIBUTOR
user: login: metamaskbot
created_at: 2025-03-02T05:48:54Z
body: <details><summary>Builds ready [a25ff4b]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13602392430/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4600541#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/1ec895ce-092f-4b72-9006-e675234e0d3c/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1548 ± 37 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">1429</td><td align="right">1803</td><td align="right">1547</td><td align="right">77</td><td align="right">37</td></tr><tr><td>domContentLoaded</td><td align="right">1394</td><td align="right">1737</td><td align="right">1523</td><td align="right">71</td><td align="right">34</td></tr><tr><td>load</td><td align="right">1433</td><td align="right">1806</td><td align="right">1548</td><td align="right">77</td><td align="right">37</td></tr><tr><td>domInteractive</td><td align="right">16</td><td align="right">108</td><td align="right">35</td><td align="right">21</td><td align="right">10</td></tr><tr><td>backgroundConnect</td><td align="right">10</td><td align="right">71</td><td align="right">28</td><td align="right">15</td><td align="right">7</td></tr><tr><td>firstReactRender</td><td align="right">14</td><td align="right">78</td><td align="right">28</td><td align="right">23</td><td align="right">11</td></tr><tr><td>getState</td><td align="right">5</td><td align="right">65</td><td align="right">16</td><td align="right">20</td><td align="right">9</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">997</td><td align="right">1339</td><td align="right">1127</td><td align="right">67</td><td align="right">32</td></tr><tr><td>setupStore</td><td align="right">8</td><td align="right">48</td><td align="right">13</td><td align="right">12</td><td align="right">6</td></tr><tr><td>uiStartup</td><td align="right">1637</td><td align="right">2041</td><td align="right">1748</td><td align="right">87</td><td align="right">42</td></tr></tbody></table></details>

<details><summary>Bundle size diffs</summary><ul><li>background: 0 Bytes (0.00%)</li>
<li>ui: 0 Bytes (0.00%)</li>
<li>common: 0 Bytes (0.00%)</li></ul></details>


author_association: COLLABORATOR
user: login: metamaskbot
created_at: 2025-03-03T19:08:34Z
body: <details><summary>Builds ready [d6851b8]</summary><ul><li>builds: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (flask): <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>builds (MMI): <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-mmi/metamask-mmi-chrome-12.10.1-mmi.0.zip">chrome</a></li>
<li>builds (test): <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-test/metamask-chrome-12.10.1.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-test-mv2/metamask-firefox-12.10.1.zip">firefox</a></li>
<li>builds (test-flask): <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-test-flask/metamask-flask-chrome-12.10.1-flask.0.zip">chrome</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/builds-test-flask-mv2/metamask-flask-firefox-12.10.1-flask.0.zip">firefox</a></li>
<li>build viz: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/build-viz/index.html">Build System</a></li>
<li>mv3: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/test-artifacts/chrome/bundle_size.json">Bundle Size Stats</a></li>
<li>mv2: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/test-artifacts/chrome/benchmark/user_actions.json">E2e Actions Stats</a></li>
<li>storybook: <a href="https://diuv6g5fj9pvx.cloudfront.net/metamask-extension/13637837603/storybook-build/index.html">Storybook</a></li>
<li>typescript migration: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/ts-migration-dashboard/index.html">Dashboard</a></li>
<li><a href="https://circleci.com/gh/MetaMask/metamask-extension/4603672#artifacts/containers/0">all artifacts</a></li>
<li><details>
       <summary>bundle viz:</summary>
       <ul><li>background: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/background-8.html">8</a></li><li>common: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-12.html">12</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/common-13.html">13</a></li><li>ui: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-0.html">0</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-1.html">1</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-2.html">2</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-3.html">3</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-4.html">4</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-5.html">5</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-6.html">6</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-7.html">7</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-8.html">8</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-9.html">9</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-10.html">10</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-11.html">11</a>, <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/ui-12.html">12</a></li><li>content-script: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/content-script-0.html">0</a></li><li>offscreen: <a href="https://output.circle-artifacts.com/output/job/f490567e-3b19-41cf-95ae-47de1a99fb77/artifacts/0/build-artifacts/source-map-explorer/offscreen-0.html">0</a></li></ul>
     </details></li></ul></details>

<details><summary>Page Load Metrics (1873 ± 128 ms)</summary><table><thead><tr><th>Platform</th><th>Page</th><th>Metric</th><th>Min (ms)</th><th>Max (ms)</th><th>Average (ms)</th><th>StandardDeviation (ms)</th><th>MarginOfError (ms)</th></tr></thead><tbody><tr><td rowspan="11">Chrome</td><td rowspan="11">Home</td><td>firstPaint</td><td align="right">603</td><td align="right">2341</td><td align="right">1775</td><td align="right">351</td><td align="right">168</td></tr><tr><td>domContentLoaded</td><td align="right">1493</td><td align="right">2543</td><td align="right">1831</td><td align="right">270</td><td align="right">130</td></tr><tr><td>load</td><td align="right">1532</td><td align="right">2553</td><td align="right">1873</td><td align="right">267</td><td align="right">128</td></tr><tr><td>domInteractive</td><td align="right">22</td><td align="right">210</td><td align="right">45</td><td align="right">41</td><td align="right">20</td></tr><tr><td>backgroundConnect</td><td align="right">12</td><td align="right">86</td><td align="right">41</td><td align="right">23</td><td align="right">11</td></tr><tr><td>firstReactRender</td><td align="right">15</td><td align="right">71</td><td align="right">36</td><td align="right">20</td><td align="right">10</td></tr><tr><td>getState</td><td align="right">5</td><td align="right">51</td><td align="right">16</td><td align="right">12</td><td align="right">6</td></tr><tr><td>initialActions</td><td align="right">0</td><td align="right">1</td><td align="right">0</td><td align="right">0</td><td align="right">0</td></tr><tr><td>loadScripts</td><td align="right">1090</td><td align="right">2088</td><td align="right">1382</td><td align="right">247</td><td align="right">119</td></tr><tr><td>setupStore</td><td align="right">7</td><td align="right">64</td><td align="right">20</td><td align="right">19</td><td align="right">9</td></tr><tr><td>uiStartup</td><td align="right">1768</td><td align="right">2854</td><td align="right">2128</td><td align="right">301</td><td align="right">145</td></tr></tbody></table></details>

<details><summary>Bundle size diffs</summary><ul><li>background: 0 Bytes (0.00%)</li>
<li>ui: 0 Bytes (0.00%)</li>
<li>common: 0 Bytes (0.00%)</li></ul></details>


author_association: COLLABORATOR