Merge pull request #1272 from googlefonts/use_serializer #3900
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
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
schedule: | |
- cron: '22 2 * * *' # run at 2:22 every day | |
name: Continuous integration | |
jobs: | |
check: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: rustup component add rustfmt | |
- name: rustfmt check | |
run: cargo fmt --all -- --check | |
- name: cargo doc | |
run: cargo doc --all-features --document-private-items --no-deps | |
env: | |
RUSTDOCFLAGS: -D warnings | |
- name: check no println! or eprintln! statements | |
run: resources/scripts/check_no_println.sh | |
clippy-lint: | |
name: Clippy lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: cargo clippy --all-features | |
run: cargo clippy --all-features --all-targets -- -D warnings | |
- name: cargo clippy --no-default-features | |
run: cargo clippy --all-targets --no-default-features -- -D warnings | |
test-stable: | |
name: cargo test stable | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
# test all packages individually to ensure deterministic resolution | |
# of dependencies for each package | |
- name: cargo test font-types | |
run: cargo test -p font-types --all-targets --all-features | |
- name: cargo test read-fonts | |
run: cargo test -p read-fonts --all-targets --all-features | |
- name: cargo test write-fonts | |
run: cargo test -p write-fonts --all-targets --all-features | |
- name: cargo test write-fonts default features | |
run: cargo test -p write-fonts --all-targets | |
- name: cargo test skrifa | |
run: cargo test -p skrifa --all-targets --all-features | |
- name: cargo test klippa | |
run: | | |
pip install -r resources/scripts/klippa_ci_requirements.txt | |
cargo test -p klippa --all-targets --all-features | |
- name: cargo test incremental-font-transfer | |
run: cargo test -p incremental-font-transfer --all-targets --all-features | |
- name: cargo test shared-brotli-patch-decoder | |
run: cargo test -p shared-brotli-patch-decoder --all-targets --all-features | |
ensure-clean-codegen: | |
name: check codegen is up-to-date | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: run codegen | |
run: cargo run --bin=codegen resources/codegen_plan.toml | |
- name: ensure no unstaged changes | |
run: | | |
git add . | |
git status -sb | |
git diff-index --quiet HEAD -- | |
check-no-std: | |
name: cargo check no std | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
# Use a target without `std` to make sure we don't link to `std` | |
target: thumbv7em-none-eabihf | |
- name: cargo build font-types | |
run: cargo build -p font-types --target thumbv7em-none-eabihf --no-default-features | |
- name: cargo build read-fonts | |
run: cargo build -p read-fonts --target thumbv7em-none-eabihf --no-default-features --features=libm | |
- name: cargo build skrifa | |
run: cargo build -p skrifa --target thumbv7em-none-eabihf --no-default-features --features=libm | |
# We use `cargo build` here because `cargo check` doesn't pick up all | |
# warnings / errors. Notably, it misses `arithmetic_overflow`. | |
check-wasm: | |
name: cargo check wasm | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: wasm32-unknown-unknown | |
- name: cargo build font-types | |
run: cargo build -p font-types --target wasm32-unknown-unknown | |
- name: cargo build read-fonts | |
run: cargo build -p read-fonts --target wasm32-unknown-unknown | |
- name: cargo build skrifa | |
run: cargo build -p skrifa --target wasm32-unknown-unknown | |
- name: cargo build write-fonts | |
run: cargo build -p write-fonts --target wasm32-unknown-unknown | |
# If this fails, consider changing your text or adding something to .typos.toml | |
typos: | |
name: Check for typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: check typos | |
uses: crate-ci/[email protected] |