Skip to content
Latchkey

Blocked PR Check workflow (mochajs/mocha)

The Blocked PR Check workflow from mochajs/mocha, explained and optimized by Latchkey.

C

CI health: C - fair

Point runs-on at Latchkey and get run de-duplication, job timeouts, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: mochajs/mocha.github/workflows/blocked-pr.ymlLicense MITView source

What it does

This is the Blocked PR Check workflow from the mochajs/mocha repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
name: Blocked PR Check

on:
  pull_request:
    branches:
      - main
    types: [opened, reopened, synchronize, labeled, unlabeled]
  workflow_dispatch:
    inputs:
      pr:
        description: "PR ID"
        required: true
        type: string

permissions:
  contents: read
  pull-requests: read

jobs:
  not-blocked:
    name: not-blocked
    runs-on: ubuntu-latest
    steps:
      - name: 'Verify "status: blocked" label is not applied'
        if: "github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'status: blocked')"
        run: |
          echo "::error::This PR has the 'status: blocked' label and cannot be merged until that label is removed."
          exit 1
      - name: 'Verify "status: blocked" label is not applied (manual runs)'
        if: "github.event_name == 'workflow_dispatch'"
        env:
          GH_TOKEN: ${{ github.token }}
          PR: ${{ inputs.pr }}
        run: |
          labels=$(gh pr view "$PR" --repo "$GITHUB_REPOSITORY" --json labels --jq '.labels[].name')
          if echo "$labels" | grep -qx 'status: blocked'; then
            echo "::error::PR #$PR has the 'status: blocked' label and cannot be merged until that label is removed."
            exit 1
          fi
          echo "PR #$PR is not blocked."

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

name: Blocked PR Check
 
on:
  pull_request:
    branches:
      - main
    types: [opened, reopened, synchronize, labeled, unlabeled]
  workflow_dispatch:
    inputs:
      pr:
        description: "PR ID"
        required: true
        type: string
 
permissions:
  contents: read
  pull-requests: read
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  not-blocked:
    timeout-minutes: 30
    name: not-blocked
    runs-on: latchkey-small
    steps:
      - name: 'Verify "status: blocked" label is not applied'
        if: "github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'status: blocked')"
        run: |
          echo "::error::This PR has the 'status: blocked' label and cannot be merged until that label is removed."
          exit 1
      - name: 'Verify "status: blocked" label is not applied (manual runs)'
        if: "github.event_name == 'workflow_dispatch'"
        env:
          GH_TOKEN: ${{ github.token }}
          PR: ${{ inputs.pr }}
        run: |
          labels=$(gh pr view "$PR" --repo "$GITHUB_REPOSITORY" --json labels --jq '.labels[].name')
          if echo "$labels" | grep -qx 'status: blocked'; then
            echo "::error::PR #$PR has the 'status: blocked' label and cannot be merged until that label is removed."
            exit 1
          fi
          echo "PR #$PR is not blocked."
 

What changed

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.