Skip to content

${{ env.USE_CACHING }} #53225

${{ env.USE_CACHING }}

${{ env.USE_CACHING }} #53225

Workflow file for this run

name: Main
on:
push:
branches:
- main
- master
- stable
- gh-readonly-queue.*
- Version-v[0-9]+.[0-9]+.[0-9]+
- trigger-ci.*
- prep-deps-and-self-hosted
pull_request:
types: [opened, reopened, synchronize]
merge_group:
env:
USE_CACHING: 'true'
jobs:
check-workflows:
name: Check workflows
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download actionlint
id: download-actionlint
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/7fdc9630cc360ea1a469eed64ac6d78caeda1234/scripts/download-actionlint.bash) 1.6.23
shell: bash
- name: Check workflow files
# The ignore is necessary because `gha-mm-scale-set-ubuntu-22.04-amd64-med` is unknown
run: ${{ steps.download-actionlint.outputs.executable }} -color -ignore 'label ".+" is unknown'
shell: bash
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: ${{ env.USE_CACHING }}
prep-build-test-webpack:
needs: prep-deps
runs-on: ubuntu-latest
steps:
- name: Setup environment
uses: metamask/github-tools/.github/actions/setup-environment@caching
with:
should-cache-restore: ${{ env.USE_CACHING }}
# should add `--env production` to this but need `SEGMENT_PROD_WRITE_KEY`
- run: yarn webpack --test --no-lavamoat --no-cache --browser=chrome --lockdown --sentry --snow
- name: Upload artifact prep-build-test-webpack
uses: actions/upload-artifact@v4
with:
name: prep-build-test-webpack
path: ./dist/
retention-days: 1
run-tests:
needs: prep-deps
uses: ./.github/workflows/run-tests.yml
run-pageload-benchmark:
name: Run Benchmarks # So that the level 1 name will be "Run Benchmarks" in the GitHub Actions UI
needs: prep-build-test-webpack
uses: ./.github/workflows/benchmarks.yml
with:
name: run-pageload-benchmark # The level 2 name
command: 'yarn benchmark:chrome --out test-artifacts/chrome/benchmark/pageload.json --retries 2'
run-user-actions-benchmark:
name: Run Benchmarks # So that the level 1 name will be "Run Benchmarks" in the GitHub Actions UI
needs: prep-build-test-webpack
uses: ./.github/workflows/benchmarks.yml
with:
name: run-user-actions-benchmark # The level 2 name
command: 'yarn user-actions-benchmark:chrome --out test-artifacts/chrome/benchmark/user_actions.json --retries 2'
wait-for-circleci-workflow-status:
name: Wait for CircleCI workflow status
uses: ./.github/workflows/wait-for-circleci-workflow-status.yml
# Explanation for all-jobs-completed and all-jobs-pass being separate:
# https://github.com/MetaMask/metamask-module-template/pull/151
all-jobs-completed:
name: All jobs completed
runs-on: ubuntu-latest
needs:
- check-workflows
- run-tests
- run-pageload-benchmark
- run-user-actions-benchmark
- wait-for-circleci-workflow-status
outputs:
PASSED: ${{ steps.set-output.outputs.PASSED }}
steps:
- name: Set PASSED output
id: set-output
run: echo "PASSED=true" >> "$GITHUB_OUTPUT"
all-jobs-pass:
name: All jobs pass
if: ${{ always() }}
runs-on: ubuntu-latest
needs:
- all-jobs-completed
steps:
- name: Check that all jobs have passed
run: |
passed="${{ needs.all-jobs-completed.outputs.PASSED }}"
if [[ $passed != "true" ]]; then
exit 1
fi
log-merge-group-failure:
name: Log merge group failure
# Only run this job if the merge group event fails, skip on forks
if: ${{ github.event_name == 'merge_group' && failure() && !github.event.repository.fork }}
needs:
- all-jobs-pass
uses: metamask/github-tools/.github/workflows/log-merge-group-failure.yml@6bbad335a01fce1a9ec1eabd9515542c225d46c0
secrets:
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
SPREADSHEET_ID: ${{ secrets.GOOGLE_MERGE_QUEUE_SPREADSHEET_ID }}
SHEET_NAME: ${{ secrets.GOOGLE_MERGE_QUEUE_SHEET_NAME }}