Skip to content

Commit

Permalink
[CI/Build] Add linting for excalidraw exported images
Browse files Browse the repository at this point in the history
Ensure that PNG images named as excalidraw images were exported with
the excalidraw metadata embedded in them. This ensures they are
editable in the future.

Signed-off-by: Russell Bryant <rbryant@redhat.com>
  • Loading branch information
russellb committed Nov 18, 2024
1 parent dc62270 commit 8eeb156
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/png-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Lint PNG exports from excalidraw
on:
push:
branches:
- "main"
paths:
- '*.excalidraw.png'
- '.github/workflows/png-lint.yml'
pull_request:
branches:
- "main"
paths:
- '*.excalidraw.png'
- '.github/workflows/png-lint.yml'

env:
LC_ALL: en_US.UTF-8

defaults:
run:
shell: bash

permissions:
contents: read

jobs:
actionlint:
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: "Run png-lint.sh to check excalidraw exported images"
run: |
tools/png-lint.sh
4 changes: 4 additions & 0 deletions format.sh
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,10 @@ echo 'vLLM shellcheck:'
tools/shellcheck.sh
echo 'vLLM shellcheck: Done'

echo 'excalidraw png check:'
tools/png-lint.sh
echo 'excalidraw png check: Done'

if ! git diff --quiet &>/dev/null; then
echo
echo "🔍🔍There are files changed by the format checker or by you that are not added and committed:"
Expand Down
15 changes: 15 additions & 0 deletions tools/png-lint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

# Ensure that *.excalidraw.png files have the excalidraw metadata
# embedded in them. This ensures they can be loaded back into
# the tool and edited in the future.

for file in $(find . -iname '*.excalidraw.png'); do
if git check-ignore -q "$file"; then
continue
fi
if ! grep -q "excalidraw+json" "$file"; then
echo "$file was not exported from excalidraw with 'Embed Scene' enabled."
exit 1
fi
done

0 comments on commit 8eeb156

Please sign in to comment.