further splitting out checks into individual .py files #2096
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 }} |