mirror of
https://github.com/nicoverbruggen/kobo-font-fix.git
synced 2026-03-24 17:10:09 +01:00
58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
name: Validate font processing
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ghcr.io/nicoverbruggen/fntbld-oci:latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download latest Readerly font
|
|
run: |
|
|
apt-get update && apt-get install -y curl jq
|
|
LATEST_TAG=$(curl -s https://api.github.com/repos/nicoverbruggen/readerly/releases/latest | jq -r '.tag_name')
|
|
curl -L -o Readerly.zip "https://github.com/nicoverbruggen/readerly/releases/download/${LATEST_TAG}/Readerly.zip"
|
|
unzip Readerly.zip -d fonts
|
|
|
|
- name: Dry run NV preset
|
|
run: python3 kobofix.py --preset nv --dry-run fonts/*.ttf
|
|
|
|
- name: Run NV preset
|
|
run: python3 kobofix.py --preset nv fonts/*.ttf
|
|
|
|
- name: Dry run KF preset on NV output
|
|
run: python3 kobofix.py --preset kf --dry-run fonts/NV_*.ttf
|
|
|
|
- name: Run KF preset on NV output
|
|
run: python3 kobofix.py --preset kf fonts/NV_*.ttf
|
|
|
|
- name: Validate KF fonts have kern table
|
|
run: |
|
|
python3 -c "
|
|
from fontTools.ttLib import TTFont
|
|
import glob, sys
|
|
errors = 0
|
|
for path in sorted(glob.glob('fonts/KF_*.ttf')):
|
|
font = TTFont(path)
|
|
has_kern = 'kern' in font
|
|
pairs = 0
|
|
if has_kern:
|
|
for st in font['kern'].kernTables:
|
|
pairs += len(st.kernTable)
|
|
if not has_kern or pairs == 0:
|
|
print(f'FAIL: {path} — missing or empty kern table')
|
|
errors += 1
|
|
else:
|
|
print(f'OK: {path} — {pairs} kern pairs')
|
|
sys.exit(1 if errors else 0)
|
|
"
|