diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cd38820a63..9353db0c42 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,9 +12,26 @@ concurrency: cancel-in-progress: ${{ !contains(github.ref, 'refs/heads/main') }} jobs: + check-skip-merge-queue: + name: Check if pull request can skip merge queue + runs-on: ubuntu-latest + outputs: + skip-merge-queue: ${{ steps.check-skip-merge-queue.outputs.up-to-date }} + steps: + - name: Checkout repository + uses: actions/checkout@v6 + if: github.event_name == 'merge_group' + + - name: Check pull request merge queue status + id: check-skip-merge-queue + if: github.event_name == 'merge_group' + uses: MetaMask/github-tools/.github/actions/check-skip-merge-queue@v1 + check-workflows: name: Check workflows runs-on: ubuntu-latest + needs: check-skip-merge-queue + if: github.event_name != 'merge_group' || needs.check-skip-merge-queue.outputs.skip-merge-queue != 'true' steps: - name: Checkout repository uses: actions/checkout@v6 @@ -126,11 +143,14 @@ jobs: name: All jobs pass if: ${{ always() }} runs-on: ubuntu-latest - needs: all-jobs-complete + needs: + - all-jobs-complete + - check-skip-merge-queue steps: - name: Check that all jobs have passed + env: + PASSED: ${{ needs.all-jobs-complete.outputs.passed == 'true' || needs.check-skip-merge-queue.outputs.skip-merge-queue == 'true' }} run: | - passed="${{ needs.all-jobs-complete.outputs.passed }}" - if [[ $passed != "true" ]]; then + if [[ "$PASSED" != "true" ]]; then exit 1 fi