It's recommended to always install dependencies locally in the project folder because global dependencies can easily conflict with other projects and, because they are not managed by the project, diverge from versions defined in e.g. `package.json`. Previously we installed `gulp-cli` globally because at the time we lacked a convenient mechanism to use Gulp otherwise, but nowadays NPM provides the `npx` command for that purpose and recommends using it over global installations (see https://docs.npmjs.com/downloading-and-installing-packages-globally and PR #17489 that provided the ground work for using it). This commit therefore updates our GitHub Actions workflows to no longer install `gulp-cli` globally but instead install it locally from the already existing entries in `package.json` like all other dependencies we use. Not only does this remove the special-casing for `gulp-cli` which simplifies the workflow definitions, it also ensures that the version ranges provided in `package.json` are respected. This makes the local and workflow setups more similar, but is also relevant for the upcoming upgrade to Gulp 5 which from a quick try is a bit involved and having `package.json` be the single source of truth for the dependency versions we use is therefore important.
62 lines
1.2 KiB
YAML
62 lines
1.2 KiB
YAML
name: Font tests
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/font/**'
|
|
- '.github/workflows/font_tests.yml'
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
paths:
|
|
- 'gulpfile.mjs'
|
|
- 'src/**'
|
|
- 'test/test.mjs'
|
|
- 'test/font/**'
|
|
- '.github/workflows/font_tests.yml'
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
name: Test
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [lts/*]
|
|
os: [windows-latest, ubuntu-latest]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Use Python 3.12
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
cache: 'pip'
|
|
|
|
- name: Install Fonttools
|
|
run: pip install fonttools
|
|
|
|
- name: Run font tests
|
|
run: npx gulp fonttest --headless
|