Skip to content
Latchkey

documentation workflow (showdownjs/showdown)

The documentation workflow from showdownjs/showdown, 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: showdownjs/showdown.github/workflows/docs.ymlLicense MITView source

What it does

This is the documentation workflow from the showdownjs/showdown 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: documentation

on:
  push:
    branches:
      - master
    paths:
      - 'mkdocs.yml'
      - 'docs/**'
      - '.github/workflows/docs.yml'

permissions:
  contents: read

jobs:
  build_docs:
    name: Build documentation
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

      - name: Trigger external build
        env:
          TOKEN: ${{ secrets.DOCS_DEPLOY_KEY }}
          COMMIT: ${{ github.event.head_commit.id }}
          COMMITTER: ${{ github.event.head_commit.author.username }}
          OWNER: showdownjs
          REPO: showdownjs.github.io
        run: |
          # Build the JSON payload with jq so the GitHub-controlled COMMIT/COMMITTER
          # values are properly escaped (no shell/JSON injection into the request body).
          PAYLOAD=$(jq -n --arg et "e: \"${COMMIT}\" by ${COMMITTER}" \
            '{event_type: $et, client_payload: {source: "showdown"}}')
          curl -X POST \
          -H "Authorization: token ${TOKEN}" \
          -H "Accept: application/vnd.github.v3+json" \
          https://api.github.com/repos/${OWNER}/${REPO}/dispatches \
          --data-binary "${PAYLOAD}"

The same workflow, on Latchkey

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

name: documentation
 
on:
  push:
    branches:
      - master
    paths:
      - 'mkdocs.yml'
      - 'docs/**'
      - '.github/workflows/docs.yml'
 
permissions:
  contents: read
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  build_docs:
    timeout-minutes: 30
    name: Build documentation
    runs-on: latchkey-small
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
 
      - name: Trigger external build
        env:
          TOKEN: ${{ secrets.DOCS_DEPLOY_KEY }}
          COMMIT: ${{ github.event.head_commit.id }}
          COMMITTER: ${{ github.event.head_commit.author.username }}
          OWNER: showdownjs
          REPO: showdownjs.github.io
        run: |
          # Build the JSON payload with jq so the GitHub-controlled COMMIT/COMMITTER
          # values are properly escaped (no shell/JSON injection into the request body).
          PAYLOAD=$(jq -n --arg et "e: \"${COMMIT}\" by ${COMMITTER}" \
            '{event_type: $et, client_payload: {source: "showdown"}}')
          curl -X POST \
          -H "Authorization: token ${TOKEN}" \
          -H "Accept: application/vnd.github.v3+json" \
          https://api.github.com/repos/${OWNER}/${REPO}/dispatches \
          --data-binary "${PAYLOAD}"
 

What changed

What Latchkey heals here

This workflow has steps that commonly fail on transient issues (network, registries, flaky browsers). On Latchkey managed runners they are detected, retried, and self-healed instead of failing your build:

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

Actions used in this workflow