49 lines
1.2 KiB
YAML
49 lines
1.2 KiB
YAML
name: LaTeX Lint
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
- dev
|
||
|
||
jobs:
|
||
lint:
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: Check out repository
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Install chktex and dependencies
|
||
run: |
|
||
sudo apt-get update
|
||
sudo apt-get install -y chktex
|
||
|
||
- name: Find all .tex files and run chktex
|
||
run: |
|
||
# Exit with non-zero if any .tex file has a lint error
|
||
files=$(find latex -type f -name "*.tex")
|
||
if [ -z "$files" ]; then
|
||
echo "No .tex files found under latex/—skipping lint."
|
||
exit 0
|
||
fi
|
||
|
||
echo "Running chktex on:"
|
||
echo "$files" | tr ' ' '\n'
|
||
|
||
# Run chktex on each file; fail if any issues reported
|
||
# -q suppresses info messages; -n1 treats warnings/errors as fatal
|
||
FAIL=0
|
||
for f in $files; do
|
||
chktex -q -n1 "$f" || FAIL=1
|
||
done
|
||
|
||
if [ $FAIL -ne 0 ]; then
|
||
echo "::error::Lint errors detected in one or more .tex files."
|
||
exit 1
|
||
fi
|
||
|
||
- name: Success message
|
||
if: ${{ always() && success() }}
|
||
run: echo "✅ All .tex files passed chktex lint."
|