Skip to content

further splitting out checks into individual .py files #2096

further splitting out checks into individual .py files

further splitting out checks into individual .py files #2096

Workflow file for this run

# Workflow for testing installing, running, and uninstalling FontBakery
name: ⚙️ Install & Run
on:
push:
branches:
- '**'
paths-ignore:
- 'docs/**'
- '**.md'
- '**.txt'
- '!requirements*.txt'
tags-ignore:
- '**'
pull_request:
paths-ignore:
- 'docs/**'
- '**.md'
- '**.txt'
- '!requirements*.txt'
jobs:
install-run:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, windows-latest]
profile:
- description: Universal profile on a static font
name: universal
args: >-
-x win_ascent_and_descent
-x os2_metrics_match_hhea
-x soft_dotted
data/test/source-sans-pro/OTF/SourceSansPro-Regular.otf
data/test/source-sans-pro/OTF/SourceSansPro-Italic.otf
- description: Universal profile on a variable font
name: universal
args: >-
-x win_ascent_and_descent
-x os2_metrics_match_hhea
-x fsselection
-x valid_default_instance_nameids
-x soft_dotted
data/test/source-sans-pro/VAR/SourceSansVariable-Roman.ttf
- description: Universal profile on a UFO font
extras: ".[ufo]"
name: universal
args: --verbose data/test/test.ufo
- description: Universal profile on a designspace
extras: ".[ufo]"
name: universal
args: >-
-x designspace_has_consistent
"data/test/stupidfont/Stupid Font.designspace"
- description: OpenType profile on a TTC
name: opentype
args: >-
-x tabular_kerning
-x style
-x family
-x monospace
data/test/ttc/NotoSerifToto.ttc
- description: Font Bureau profile
name: fontbureau
args: >-
-c ots
-c ytlc_sanity
data/test/fontbureau/ytlcSample.ttf
- description: Adobe Fonts profile on a static font
name: adobefonts
args: >-
data/test/source-sans-pro/OTF/SourceSansPro-Regular.otf
data/test/source-sans-pro/OTF/SourceSansPro-Italic.otf
- description: Adobe Fonts profile on a variable font
name: adobefonts
args: >-
data/test/source-sans-pro/VAR/SourceSansVariable-Roman.ttf
- description: Google Fonts
extras: ".[googlefonts]"
name: googlefonts
args: >-
-c canonical_filename
-c vendor_id
-c glyph_coverage
-c name/license
-c hinting_impact
-c unreachable_glyphs
-c contour_count
-c outline_colinear_vectors
data/test/cabin/Cabin-*.ttf
- description: Fontwerk
extras: ".[fontwerk]"
name: fontwerk
args: >-
-c weight_class_fvar
-c inconsistencies_between_fvar_stat
-c style_linking
-c consistent_axes
-c metadata/parses
-c usweightclass
data/test/source-sans-pro/VAR/SourceSansVariable-Roman.ttf
- description: Noto fonts
extras: ".[notofonts]"
name: notofonts
args: >-
-c unicode_range_bits
-c noto_trademark
-c noto_vendor
-c alien_codepoints
-c tnum_horizontal_metrics
-c control_chars
-c canonical_filename
data/test/notosanskhudawadi/NotoSansKhudawadi-Regular.ttf
- description: Type Network
extras: ".[typenetwork]"
name: typenetwork
args: >-
-c glyph_coverage
-c vertical_metrics
-c font_is_centered_vertically
-c family/tnum_horizontal_metrics
-c family/equal_numbers_of_glyphs
data/test/cabin/Cabin-Regular.ttf data/test/cabin/Cabin-Italic.ttf
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # unshallow fetch for setuptools-scm (otherwise the version is always 0.1.dev1)
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: 'pip' # caching pip dependencies
- name: Install FontBakery (no extras)
run: |
python -m pip install --upgrade pip
python -m pip install .
fontbakery -h
fontbakery --version
- name: Install any extras
if: ${{ matrix.profile.extras }}
run: |
python -m pip install ${{ matrix.profile.extras }}
- name: Run ${{matrix.profile.description}}
run: >-
fontbakery check-${{ matrix.profile.name }}
--error-code-on ERROR
${{ matrix.profile.args }}