name: Markdown standards
on:
push:
branches: [main]
paths:
- '**/*.md'
- '.rumdl.toml'
- '.github/workflows/markdown.yml'
pull_request:
branches: [main]
paths:
- '**/*.md'
- '.rumdl.toml'
- '.github/workflows/markdown.yml'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: markdown-standards-${{ github.event.pull_request.number || github.ref }}-${{ github.event_name == 'workflow_dispatch' && github.run_id || 'latest' }}
cancel-in-progress: ${{ github.event_name != 'workflow_dispatch' }}
jobs:
markdown:
runs-on: ubuntu-24.04-arm
timeout-minutes: 10
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with:
persist-credentials: false
- name: Reuse the pinned rumdl linter
id: rumdl-cache
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 with:
path: ${{ runner.temp }}/rumdl-bin
key: rumdl-v1-${{ runner.os }}-${{ runner.arch }}-0.3.2-afc6dd91f1c4
- name: Install and verify the pinned rumdl linter on a cache miss
if: steps.rumdl-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}
run: |
set -euo pipefail
asset="rumdl-v0.3.2-aarch64-unknown-linux-musl.tar.gz"
expected="afc6dd91f1c4f2a8cf4a40ab99f8e52e06e6dddfc5334f1c1db8b158d353d143"
curl -fsSL --retry 3 -o "$asset" "https://github.com/rvben/rumdl/releases/download/v0.3.2/$asset"
printf '%s %s\n' "$expected" "$asset" | sha256sum --check --strict
mkdir -p "$RUNNER_TEMP/rumdl-bin"
tar -xzf "$asset" -C "$RUNNER_TEMP/rumdl-bin" rumdl
chmod 0755 "$RUNNER_TEMP/rumdl-bin/rumdl"
rm -f "$asset"
- name: Check Markdown lint and formatting contracts
working-directory: ${{ github.workspace }}
run: |
set -euo pipefail
"$RUNNER_TEMP/rumdl-bin/rumdl" --version
"$RUNNER_TEMP/rumdl-bin/rumdl" check --no-cache .
"$RUNNER_TEMP/rumdl-bin/rumdl" fmt --check --no-cache .