Skip to content

ci: setup prep-deps on GitHub Actions, and try self-hosted runners fo… #52827

ci: setup prep-deps on GitHub Actions, and try self-hosted runners fo…

ci: setup prep-deps on GitHub Actions, and try self-hosted runners fo… #52827

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:
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
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/metamask-extension/.github/actions/setup-environment@prep-deps-and-self-hosted
with:
should-cache-restore: false
should-cache-save: true
run-tests:
needs: prep-deps
uses: ./.github/workflows/run-tests.yml
run-benchmarks:
needs: prep-deps
uses: ./.github/workflows/benchmarks.yml
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-benchmarks
- 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 }}