Skip to content
Latchkey

Validate Pull Request workflow (prometheus-community/windows_exporter)

The Validate Pull Request workflow from prometheus-community/windows_exporter, 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: prometheus-community/windows_exporter.github/workflows/pr-check.yamlLicense MITView source

What it does

This is the Validate Pull Request workflow from the prometheus-community/windows_exporter 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: Validate Pull Request
on:
  pull_request:
    types:
      - opened
      - reopened
      - synchronize
      - labeled
      - unlabeled

jobs:
  required-labels-missing:
    name: required labels missing
    runs-on: ubuntu-latest
    steps:
      - name: check
        if: >-
          !contains(github.event.pull_request.labels.*.name, 'πŸ’₯ breaking-change')
          && !contains(github.event.pull_request.labels.*.name, '✨ enhancement')
          && !contains(github.event.pull_request.labels.*.name, '🐞 bug')
          && !contains(github.event.pull_request.labels.*.name, 'πŸ“– docs')
          && !contains(github.event.pull_request.labels.*.name, 'chore')
          && !contains(github.event.pull_request.labels.*.name, 'πŸ› οΈ dependencies')
        run: >-
          echo One of the following labels is missing on this PR:
          breaking-change
          enhancement
          bug
          docs
          chore
          && exit 1
  title:
    name: check title prefix
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
      - name: check
        run: |
          PR_TITLE_PREFIX=$(echo "$PR_TITLE" | cut -d':' -f1)
          if [[ -d "internal/collector/$PR_TITLE_PREFIX" ]] || [[ -d "internal/$PR_TITLE_PREFIX" ]] || [[ -d "pkg/$PR_TITLE_PREFIX" ]] || [[ -d "$PR_TITLE_PREFIX" ]] || [[ "$PR_TITLE_PREFIX" == "docs" ]] || [[ "$PR_TITLE_PREFIX" == "ci" ]] || [[ "$PR_TITLE_PREFIX" == "revert" ]] || [[ "$PR_TITLE_PREFIX" == "fix" ]] || [[ "$PR_TITLE_PREFIX" == "fix(deps)" ]] || [[ "$PR_TITLE_PREFIX" == "feat" ]] || [[ "$PR_TITLE_PREFIX" == "chore" ]] || [[ "$PR_TITLE_PREFIX" == "chore(docs)" ]] || [[ "$PR_TITLE_PREFIX" == "chore(deps)" ]] || [[ "$PR_TITLE_PREFIX" == "*" ]] || [[ "$PR_TITLE_PREFIX" == "Release"* ]] || [[ "$PR_TITLE_PREFIX" == "Synchronize common files from prometheus/prometheus" ]] || [[ "$PR_TITLE_PREFIX" == "[0."* ]] || [[ "$PR_TITLE_PREFIX" == "[1."* ]]; then
            exit 0
          fi

          echo "PR title must start with an name of an collector package"
          echo "Example: 'logical_disk: description'"
          exit 1
        env:
          PR_TITLE: ${{ github.event.pull_request.title }}

The same workflow, on Latchkey

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

name: Validate Pull Request
on:
  pull_request:
    types:
      - opened
      - reopened
      - synchronize
      - labeled
      - unlabeled
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  required-labels-missing:
    timeout-minutes: 30
    name: required labels missing
    runs-on: latchkey-small
    steps:
      - name: check
        if: >-
          !contains(github.event.pull_request.labels.*.name, 'πŸ’₯ breaking-change')
          && !contains(github.event.pull_request.labels.*.name, '✨ enhancement')
          && !contains(github.event.pull_request.labels.*.name, '🐞 bug')
          && !contains(github.event.pull_request.labels.*.name, 'πŸ“– docs')
          && !contains(github.event.pull_request.labels.*.name, 'chore')
          && !contains(github.event.pull_request.labels.*.name, 'πŸ› οΈ dependencies')
        run: >-
          echo One of the following labels is missing on this PR:
          breaking-change
          enhancement
          bug
          docs
          chore
          && exit 1
  title:
    timeout-minutes: 30
    name: check title prefix
    runs-on: latchkey-small
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
      - name: check
        run: |
          PR_TITLE_PREFIX=$(echo "$PR_TITLE" | cut -d':' -f1)
          if [[ -d "internal/collector/$PR_TITLE_PREFIX" ]] || [[ -d "internal/$PR_TITLE_PREFIX" ]] || [[ -d "pkg/$PR_TITLE_PREFIX" ]] || [[ -d "$PR_TITLE_PREFIX" ]] || [[ "$PR_TITLE_PREFIX" == "docs" ]] || [[ "$PR_TITLE_PREFIX" == "ci" ]] || [[ "$PR_TITLE_PREFIX" == "revert" ]] || [[ "$PR_TITLE_PREFIX" == "fix" ]] || [[ "$PR_TITLE_PREFIX" == "fix(deps)" ]] || [[ "$PR_TITLE_PREFIX" == "feat" ]] || [[ "$PR_TITLE_PREFIX" == "chore" ]] || [[ "$PR_TITLE_PREFIX" == "chore(docs)" ]] || [[ "$PR_TITLE_PREFIX" == "chore(deps)" ]] || [[ "$PR_TITLE_PREFIX" == "*" ]] || [[ "$PR_TITLE_PREFIX" == "Release"* ]] || [[ "$PR_TITLE_PREFIX" == "Synchronize common files from prometheus/prometheus" ]] || [[ "$PR_TITLE_PREFIX" == "[0."* ]] || [[ "$PR_TITLE_PREFIX" == "[1."* ]]; then
            exit 0
          fi
 
          echo "PR title must start with an name of an collector package"
          echo "Example: 'logical_disk: description'"
          exit 1
        env:
          PR_TITLE: ${{ github.event.pull_request.title }}
 

What changed

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

Actions used in this workflow