CI #224
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
name: CI | |
on: | |
push: | |
branches: [auto] | |
pull_request: | |
workflow_dispatch: | |
merge_group: | |
types: [checks_requested] | |
jobs: | |
linux-ci-shared: | |
name: stable, Linux, shared library | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install harfbuzz from apt | |
run: | | |
sudo apt update | |
sudo apt install libharfbuzz-dev libfreetype-dev | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Cargo build | |
run: cargo build --workspace | |
- name: Cargo test | |
run: cargo test --workspace | |
env: | |
RUST_BACKTRACE: 1 | |
- name: Cargo check no-default-features | |
run: cargo check --no-default-features | |
env: | |
RUST_BACKTRACE: 1 | |
linux-ci-static: | |
name: stable, Linux, static linking, no pkg-config | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
# Test the harfbuzz-sys package build to check the 'exclude's. We should | |
# do this where the embedded harfbuzz is statically linked, but we don't | |
# need to do it for every environment. | |
- name: Cargo package | |
run: cargo package --manifest-path=harfbuzz-sys/Cargo.toml --features "freetype-sys/bundled bundled" | |
- name: Cargo build | |
run: cargo build --workspace --features "freetype-sys/bundled bundled" | |
- name: Cargo clippy | |
run: cargo clippy --workspace --features "freetype-sys/bundled bundled" -- -D warnings | |
- name: Cargo test | |
run: cargo test --workspace --features "freetype-sys/bundled bundled" | |
env: | |
RUST_BACKTRACE: 1 | |
mac-ci-shared: | |
name: stable, macOS, shared library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: install harfbuzz from homebrew | |
run: | | |
brew install harfbuzz | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Cargo build | |
run: cargo build --workspace | |
- name: Cargo test | |
run: cargo test --workspace | |
env: | |
RUST_BACKTRACE: 1 | |
mac-ci-static: | |
name: stable, macOS, static library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- name: Cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Cargo build | |
run: cargo build --workspace --features bundled | |
- name: Cargo test | |
run: cargo test --workspace --features bundled | |
env: | |
RUST_BACKTRACE: 1 | |
windows-ci: | |
name: stable, Windows, static library | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Cargo build | |
run: cargo build --workspace --features "freetype-sys/bundled bundled" | |
- name: Cargo test | |
run: cargo test --workspace --features "freetype-sys/bundled bundled" | |
env: | |
RUST_BACKTRACE: 1 | |
wasm32-emscripten-ci: | |
name: stable, Emscripten, static library | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- uses: mymindstorm/setup-emsdk@v14 | |
with: | |
version: "3.1.44" | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: wasm32-unknown-emscripten | |
- name: Cargo build | |
run: cargo build --target wasm32-unknown-emscripten --workspace --no-default-features --features bundled | |
ios-ci-static: | |
name: stable, iOS, static library | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install stable toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
target: aarch64-apple-ios | |
- name: Cargo build | |
run: cargo build --target aarch64-apple-ios --workspace --no-default-features --features "bundled, coretext" | |
build_result: | |
name: Result | |
runs-on: ubuntu-latest | |
needs: | |
- "ios-ci-static" | |
- "linux-ci-static" | |
- "linux-ci-shared" | |
- "mac-ci-shared" | |
- "mac-ci-static" | |
- "wasm32-emscripten-ci" | |
- "windows-ci" | |
steps: | |
- name: Mark the job as successful | |
run: exit 0 | |
if: success() | |
- name: Mark the job as unsuccessful | |
run: exit 1 | |
if: "!success()" | |